#include<stdio.h>
#include<stdlib.h>
#include<gmp.h>

#include "tools.h"



int main(int argc, char *argv[])
{
	int base;
	mpz_t a,b,tmp;
	mpz_t tab[256];
	mpz_init(a);mpz_init(b);mpz_init(tmp);

	if(argc != 4)
	{		
		fprintf(stderr, "usage:\n\twiener hex/dec e N\n\n");
		return 0;
	}
	if(strcmp(argv[1],"hex")==0)
	{
		base = 16 ;
	}
	else if(strcmp(argv[1],"dec")==0)
	{
		base = 10 ;
	} 
	else 
	{
		fprintf(stderr, "usage:\n\twiener hex/dec e N\n\n");
	}

	mpz_set_str(a,argv[2],base);	
	mpz_set_str(b,argv[3],base);	

	mpz_init_set_str(tab[0], "1",10);
	mpz_init_set_str(tab[1], "431",10);
	mpz_init_set_str(tab[2], "809",10);
	mpz_init_set_str(tab[3], "348679",10);
	mpz_init_set_str(tab[4], "2621",10);
	mpz_init_set_str(tab[5], "1129651",10);
	mpz_init_set_str(tab[6], "2120389",10);
	mpz_init_set_str(tab[7], "913887659",10);
	mpz_init_set_str(tab[8], "7829",10);
	mpz_init_set_str(tab[9], "3374299",10);
	mpz_init_set_str(tab[10], "6333661",10);
	mpz_init_set_str(tab[11], "2729807891",10);
	mpz_init_set_str(tab[12], "20519809",10);
	mpz_init_set_str(tab[13], "8844037679",10);
	mpz_init_set_str(tab[14], "16600525481",10);
	mpz_init_set_str(tab[15], "7154826482311",10);
	mpz_init_set_str(tab[16], "209785669799",10);
	mpz_init_set_str(tab[17], "90417623683369",10);
	mpz_init_set_str(tab[18], "169716606867391",10);
	mpz_init_set_str(tab[19], "73147857559845521",10);
	mpz_init_set_str(tab[20], "549848240543179",10);
	mpz_init_set_str(tab[21], "236984591674110149",10);
	mpz_init_set_str(tab[22], "444827226599431811",10);
	mpz_init_set_str(tab[23], "191720534664355110541",10);
	mpz_init_set_str(tab[24], "1642412008856371",10);
	mpz_init_set_str(tab[25], "707879575817095901",10);
	mpz_init_set_str(tab[26], "1328711315164804139",10);
	mpz_init_set_str(tab[27], "572674576836030583909",10);
	mpz_init_set_str(tab[28], "4304761875212548391",10);
	mpz_init_set_str(tab[29], "1855352368216608356521",10);
	mpz_init_set_str(tab[30], "3482552357046951648319",10);
	mpz_init_set_str(tab[31], "1500980065887236160425489",10);
	mpz_init_set_str(tab[32], "150794606190194112168401",10);
	mpz_init_set_str(tab[33], "64992475267973662344580831",10);
	mpz_init_set_str(tab[34], "121992836407867036744236409",10);
	mpz_init_set_str(tab[35], "52578912491790692836765892279",10);
	mpz_init_set_str(tab[36], "395232662824498767993379021",10);
	mpz_init_set_str(tab[37], "170345277677358969005146358051",10);
	mpz_init_set_str(tab[38], "319743224225019503306643627989",10);
	mpz_init_set_str(tab[39], "137809329640983405925163403663259",10);
	mpz_init_set_str(tab[40], "1180570971863029704166411429",10);
	mpz_init_set_str(tab[41], "508826088872965802495723325899",10);
	mpz_init_set_str(tab[42], "955081916237191030670626846061",10);
	mpz_init_set_str(tab[43], "411640305898229334219040170652291",10);
	mpz_init_set_str(tab[44], "3094276517253000854620164355409",10);
	mpz_init_set_str(tab[45], "1333633178936043368341290837181279",10);
	mpz_init_set_str(tab[46], "2503269702457677691387712963525881",10);
	mpz_init_set_str(tab[47], "1078909241759259084988104287279654711",10);
	mpz_init_set_str(tab[48], "31634547461686303407074140067821399",10);
	mpz_init_set_str(tab[49], "13634489955986796768448954369231022969",10);
	mpz_init_set_str(tab[50], "25592348896504219456322979314867511791",10);
	mpz_init_set_str(tab[51], "11030302374393318585675204084707897581921",10);
	mpz_init_set_str(tab[52], "82914148897079801229941321117759886779",10);
	mpz_init_set_str(tab[53], "35735998174641394330104709401754511201749",10);
	mpz_init_set_str(tab[54], "67077546457737559195022528784267748404211",10);
	mpz_init_set_str(tab[55], "28910422523284888013054709906019399562214941",10);
	mpz_init_set_str(tab[56], "247666872077542069373983442590973732771",10);
	mpz_init_set_str(tab[57], "106744421865420631900186863756709678824301",10);
	mpz_init_set_str(tab[58], "200362499510731534123552605056097749811739",10);
	mpz_init_set_str(tab[59], "86356237289125291207251172779178130168859509",10);
	mpz_init_set_str(tab[60], "649134871715237763829210603030942153592791",10);
	mpz_init_set_str(tab[61], "279777129709267476210389769906336068198492921",10);
	mpz_init_set_str(tab[62], "525150111217627350937831377852032202256567919",10);
	mpz_init_set_str(tab[63], "226339697934797388254205323854225879172580773089",10);
	mpz_init_set_str(tab[64], "417467109300720063964829",10);
	mpz_init_set_str(tab[65], "179928324108610347568841299",10);
	mpz_init_set_str(tab[66], "337730891424282531747546661",10);
	mpz_init_set_str(tab[67], "145562014203865771183192610891",10);
	mpz_init_set_str(tab[68], "1094181293477187287651816809",10);
	mpz_init_set_str(tab[69], "471592137488667720977933044679",10);
	mpz_init_set_str(tab[70], "885192666423044515710319798481",10);
	mpz_init_set_str(tab[71], "381518039228332186271147833145311",10);
	mpz_init_set_str(tab[72], "3268349998715337380780646241",10);
	mpz_init_set_str(tab[73], "1408658849446310411116458529871",10);
	mpz_init_set_str(tab[74], "2644095148960707941051542808969",10);
	mpz_init_set_str(tab[75], "1139605009202065122593214950665639",10);
	mpz_init_set_str(tab[76], "8566345346632899275026073797661",10);
	mpz_init_set_str(tab[77], "3692094844398779587536237806791891",10);
	mpz_init_set_str(tab[78], "6930173385426015513496093702307749",10);
	mpz_init_set_str(tab[79], "2986904729118612686316816385694639819",10);
	mpz_init_set_str(tab[80], "87578617143703901131859775343499371",10);
	mpz_init_set_str(tab[81], "37746383988936381387831563173048228901",10);
	mpz_init_set_str(tab[82], "70851101269256456015674558252890991139",10);
	mpz_init_set_str(tab[83], "30536824647049532542755734606996017180909",10);
	mpz_init_set_str(tab[84], "229543555533647924866604471175311851391",10);
	mpz_init_set_str(tab[85], "98933272435002255617506527076559407949521",10);
	mpz_init_set_str(tab[86], "185700736426721171217083017180827287775319",10);
	mpz_init_set_str(tab[87], "80037017399916824794562780404936561031162489",10);
	mpz_init_set_str(tab[88], "685652993618057841961330181164256575559",10);
	mpz_init_set_str(tab[89], "295516440249382929885333308081794584065929",10);
	mpz_init_set_str(tab[90], "554693271837008794146716116561883569627231",10);
	mpz_init_set_str(tab[91], "239072800161750790277234646238171818509336561",10);
	mpz_init_set_str(tab[92], "1797096496272929603780646404831516484540139",10);
	mpz_init_set_str(tab[93], "774548589893632659229458600482383604836799909",10);
	mpz_init_set_str(tab[94], "1453851065484800049458542941508696835992972451",10);
	mpz_init_set_str(tab[95], "626609809223948821316632007790248336312971126381",10);
	mpz_init_set_str(tab[96], "62951788344360803774830459112098410378589168429",10);
	mpz_init_set_str(tab[97], "27132220776419506426951927877314414873171931592899",10);
	mpz_init_set_str(tab[98], "50927996770587890253837841421687613996278637259061",10);
	mpz_init_set_str(tab[99], "21949966608123380699404109652747361632396092658655291",10);
	mpz_init_set_str(tab[100], "164996637250569666693830633332809933602282210452409",10);
	mpz_init_set_str(tab[101], "71113550654995526345041002966441081382583632704988279",10);
	mpz_init_set_str(tab[102], "133482279535710860355308982366243236284246308255998881",10);
	mpz_init_set_str(tab[103], "57530862479891380813138171399850834838510158858335517711",10);
	mpz_init_set_str(tab[104], "492849550948000732753147664388618454853974599630641",10);
	mpz_init_set_str(tab[105], "212418156458588315816606643351494554042063052440806271",10);
	mpz_init_set_str(tab[106], "398715286716932592797296460490392329976865451101188569",10);
	mpz_init_set_str(tab[107], "171846288574997947495634774471359094220029009424612273239",10);
	mpz_init_set_str(tab[108], "1291758673034709920546000028362568970172267425631910061",10);
	mpz_init_set_str(tab[109], "556747988077959975755326012224267226144247260447353236291",10);
	mpz_init_set_str(tab[110], "1045032766485080325721714022945318296869364347336215239349",10);
	mpz_init_set_str(tab[111], "450409122355069620386058743889432185950696033701908768159419",10);
	mpz_init_set_str(tab[112], "13206383082866612484424815442498247845675501867524189575771",10);
	mpz_init_set_str(tab[113], "5691951108715509980787095455716744821486141304902925707157301",10);
	mpz_init_set_str(tab[114], "10683963914039089499899675692981082507151481010827069366798739",10);
	mpz_init_set_str(tab[115], "4604788446950847574456760223674846560582288315666466897090256509",10);
	mpz_init_set_str(tab[116], "34613930060193391321677441274787907603515490394780900878095791",10);
	mpz_init_set_str(tab[117], "14918603855943351659642977189433588177115176360150568278459285921",10);
	mpz_init_set_str(tab[118], "28002669418696453579237049991303417251244031729377748810379494919",10);
	mpz_init_set_str(tab[119], "12069150519458171492651168546251772835286177675361809737273562310089",10);
	mpz_init_set_str(tab[120], "103392773155762709140561880099318782383793504120846880188711159",10);
	mpz_init_set_str(tab[121], "44562285230133727639582170322806395207415000276085005361334509529",10);
	mpz_init_set_str(tab[122], "83644753483012031694714561000348894948488944833765126072667327631",10);
	mpz_init_set_str(tab[123], "36050888751178185660421975791150373722798735223352769337319618208961",10);
	mpz_init_set_str(tab[124], "270992458441254060657412687740314528627922774300739672974611947739",10);
	mpz_init_set_str(tab[125], "116797749588180500143344868416075561838634715723618799052057749475509",10);
	mpz_init_set_str(tab[126], "219232898878974535071846864381914453659989524409298395436461065720851",10);
	mpz_init_set_str(tab[127], "94489379416838024615965998548605129527455485020407608433114719325686781",10);
	mpz_init_set_str(tab[128], "585768423376155958257366166760656081321742021417478396347640400954076999071931574229823266966811405479250662532423488963175496168692497914965293647364115915873536413726529246632635755731090964540630410133051209336185003772627171227192125403631467776574135898204500242382570227355918732590607075406190493228359895771819405430240980619053407942398879584470428645562676353721454705529115029985147498811163482226340257553775366696544399575754616353038858617556959636818489310132681110087504221332375127169544313303056548140313068787388200781790590263996199324099616002874948640365268259271087549939594317839858659341782458552365167302969544115409123485223825699332053425293231078191765293564336601703122767264165419740137637518178603237616779342884324511005956328226021191082589795381018217588801029647592611707875423408330847047248529014409573243672175690810315745316520565930136990373225668629164386866421938000465729091168655027479184425566300147100318271918860029926046782552466730247999157173867258104813467495435410567992269991450707231949479130082636311412070001534476805033700934748036809379245830994682858919380388794858674657277785983988748226545794482341",10);
	mpz_init_set_str(tab[129], "252466190475123218008924817873842771049670811230933188825833012811207186600002508493053828062695715761557035551474523743128638848706466601350041562013933959741494194316134105298666010720100205717011706767345071223895736626002310798919806048965162611703452572126139604466887767990400973746551649500068102581423115077654163740433862646812018823173917100906754746237513508453946978083048577923598571987611460839552651005677183046210636217150239648159748064167049603468768892667185558447714319394253679810073599033617372248474932647364314536951744403782361908686934497239102863997430619745838734023965150988979082176308239636069387107579873513741332222131468876412115026301382594700650841526229075334045912690855295907999321770334977995412831896783143864243567177465415133356596201809218851780773243778112415646094307488990595077364116005210526068022707722739246086231420363915889042850860263179169850739427855278200729238293690316843528487419075363400237175197028672898126163280113160736887636741936788243174604490532661954804668366315254816970225505065616250218602170661359502969525102876403864842454953158708312194252947570584088777286725759099150485641237421888971",10);
	mpz_init_set_str(tab[130], "473886654511310170230209228909370769789289295326740022645241084371848292249192643551927022976150427032713785988730602571208976400472230813206922560717569775941690958704762160525802326386452590313370001797638428352973668052055381522798429451537857431248475941647440696087499313930938254665801124003608109021743155679401898993064953320814207025400693583836576774260205170160656856773054059257984326538231257121109268361004271657504419256785484629608436621603580346186157851897339018060790915057891477880161349462172747445513272648997054432468587523572925253196589346325833450055502021750309827901131803132445655407502008968863420348102361189365980899546074990759631221062223942257138122493548310777826318716709824569771348752206490019231974488393418529403818669534851143585815144463243738029340032984902422871671217537339655261224059972657344754130790133865545437961065137837480825211939565920993988974935347842376774834755441917230660200283136819004157481982357764210171847084945584770631318153658611806794095203807247149505746423083622150647128616236852775932364631241391735272264056211161778787809877274698432865778734535040667797737728861046897315275547736213869",10);
	mpz_init_set_str(tab[131], "204245148094374683369220177659938801779183686285824949760098907364266613959402029370880546902720834051099641761142889708191068828603531480492183623669272573430868803201752491186620802672561066425062470774782162620131650930435869436326123093612816552868093130850046940013712204304234387760960284445555094988371300097822218466010994881270923227947698934633564589706148428339243105269186299540191244737977671819198094663592841084384404699674543875361236183911143129206234034167753116784200884389951226966349541618196454149016220511717730460393961222659930784127730008266434216973921371374383535825387807150084077480633365865580134170032117672616737767704358321017401056277818519112826530794719321945243143366901934389571451312200997198288981004497563386173045846569520842885486327263658051090645554216492944257690294758593391417587569848215315589030370547696050083761219074407954235666345952911948409248197134920064389953779595466326414546322031968990791874734396196374584066093611547036142098124226861688728255032840923521436976708349041146928912433598083546426849156065039837902345808227010726657546057105395024565150634584602527820824961139111212742883761074308177539",10);
	mpz_init_set_str(tab[132], "1535299037668904766592556723079679589144285838135210876827165490900635814567532656056366782720012693761115986497481964572482975458143037035124034649741347815504538940377233155424138315771189418060992304958727219670140894888055815786470560682918077042400810189193995135284716565899862998119981144639625282751531286817938661632661610202538982217027463390896993480019774723103932783191810493591071594384059486915237815048445236111642871288052849461314848436616791208101260481857757189539348564112155208311375645167311212675760553291744474249073137081934038428465093543535240386397368107549520468391676707058269546134811823865749103501083175126487312654771647157949312027693558655940616834432126233063884772999377565138900747935146119085793578657699814543346611536280401541827467853693648748300247498706340235286341484753235150110838394546767491471664772485613837568474600403302889051768224477477039857976891899499220675947953044827022942379409272685549934190699332138436168617070015299980005790952706083492716098305536211098707739647592303654939584799946589772211035474021863705993330149974604477383003323037063773227695999031324586276725077064034509101776527338215761",10);
	mpz_init_set_str(tab[133], "661713885235297954401391947647341902921187196236275887912508326578174036078606574760294083352325471011040990180414726730740162422459648962138458934038520908482456283302587489987803614097382639184287683437211431677830725696752056603968811654337691205274749191542611903307712839902840952189711873339678496865909984618531563163677153997294301335538836721476604189888522905657795029555670322737751857179529638860467498285879896764118077525150778117826699676181837010691643267680693348691459231132338894782202903067111132663252798468741868401350522082313570562668455317263688606537265654353843321876812660742114174384103896086137863608966848479516031754206579925076153483935923780710405855640246406450534337162731730574866222360047977325977032401468620068182389572136853064527638644941962610517406671942432641408413179928644349697771348049656788824287516941299563992012552773823545181312104749792604178788040408684164111333567762320446888165525396527472021636191412151665988673957176594291382495900616321985360638369686106983543035788112282875278961048776980191822956289303423257283125294639054529752074432228974486261136975582500896685268508214598873422865683282770992991",10);
	mpz_init_set_str(tab[134], "1242056921474143956173378388971460787617727243051385599353176882138614373985133918749600727220490269252742833076462909339138727145637716961415344031640750382743172002765181622738127897458892239211342774711610320713143983964437154971254683592480724327302255443057942064445335701812989165479064746013456853745988811035712377260823242653854036613575217883235667725335997750991081621602174689315176919856704124914427392374192196014319082872034755214203712385222984087353919729822925566337332988366733563523902896940354771054690287613021279667500167899284637088628260676720009472595470799007562058928866456010140062823062765507391024732376288677328235937710262550780993430404088952655959019055590122548682781356496450197370705079533210340407005134079149965567408732850844847338421493638161837374900226453429250346650261165367236439668261188334900600576800940861594592895951726272037242880493602278925245103305546694869526841894013265061560384942101602609896760275759699994860411209642377683824684880739221545607323529178794778854561374902173656846124103156791125718727698483687738148604091329455022202849688336984592541206063216341590297870587344803917863337210616616550649",10);
	mpz_init_set_str(tab[135], "535326533155356045110726085646699599463240441755147193321219236201742795187592718981077913432031306047932161055955513925168791399769856010370013277637163414962307133191793279400133123804782555100088735900704048227365057088672413792610768628359192185067272095957973029775939687481398330321476905531799903964521177556392034599414817583811089780450918907674572789619815030677156178910537291094841252458239477838118206113276836482171524717846979497321800038031106141649539403553680919091390517986062165878802148581292906324571513961212171536692572364591678585198780351666324082688647914372259247398341442540370367076740051933685531659654180419928469689153123159386608168504162338594718337212959342818482278764649970035066773889278813656715419212788113635159553163858714129202859663758047751908581997601428006899406262562273278905497020572172342158848601205511347269538155194023248051681492742582216780639524690625488766068856319717241532525910045790724865503678852430697784837231355864781728439183598604486156756441076060549686315952582836846100679488460576975184771638046469415142048363362995114569428215673240359385259813246243225418382223145610488599098337775761733329719",10);
	mpz_init_set_str(tab[136], "4585980986611924997196919719569176460667918285677438365005676699069468825734152294645286357083166493497053436966343495092700959504693566176263283965213663505373916583064997471886905331618711161388595480931657917892992394535898123537687149785030761222798909947043032397613142309969487757451862793355065371484829623997574125113356637266569130781040828266818985866110193173285268889587441569753719768192598902350017876388507345867246104278582891427941224116853436996651952809028760410875070548811164870610362428849629715390511015536462223920638531176826244508375893686507972905419685201833344428477083914368253443986814868006466894814948560879538027765817331400070646266620706111163330483315191254733748144911151071145537564129820284747301765475441376596665632093681519904985595508037991625502723261111002557060956689863822201532908733653812548924709463483353961970083039510667042497631983759697727984777217352605646193054759400210134534867758563851648391750852755174291020260603262031111585401514206763702584637021763829336811481763067586918932472109416959682045096042013418906608844618142380180630115610857372102479829063874948563891827786468647909865627025002247689",10);
	mpz_init_set_str(tab[137], "1976557805229739673791872399134315054547872781126975935317446657298941063891419638992118419902844758697230031332494046384954113546522927021969475389007088970816158047301013910383256197927664510558484652281544562611879722044972091244743161557348258087026330187175546963371264335596849223461752863936033175109961567942954447923856710661891295366628596982998982908293493257685950891412187316563853220091010126912857704723446666068783070944069226205442667594363831345556991660691395737087155406537612059233066206834190407333310247696215218509795206937212111383110010178884936322235884321990171448673623167092717234358317208110787231665242829739080889967067269833430448540913524333911395438308847430790245450456706111663726690139952542726087060919915233313162887432376735079048791663964374390591673725538842102093272333331307368860683664204793208586549778761325557609105790029097495316479385000429720761438980678973033509206601301490567984528003941020060456844617537480119429732320005935409093308052623115155813978556380210444165748639882129962059895479158709622961436394107783548748412030419365857851579828279527376168806326530102831037377775967987249152085247775968753959",10);
	mpz_init_set_str(tab[138], "3710058618169047322732308053131463756680345893113047637289592449547200280018929206368036662880281693239116230505771887529995076239297095036596996727857853775847498515699582954756506413279537329563373744073711255575430847179541581941988904176089885829244318147157813209669032128765315595778556999824247885531227165814037467216705519548654426801862030067856559565683146277187782531676240229930759292467812512001164461998302442806602098361373559165204450310534430530291429822504267172397932073988232380323783204939350439750923411568997939151796571722052431807276097992384950080484525328283175642637960886723917036185333228217231717905293385751546264462546221102657152829696151243931134361001989725079602249233121216556739889381024610360567128269632073666702496363788349603133346766002735225031703118238801068662313962099832161040123165525934352080089955958033355233797178964129637380584274861595461939684768838257967770181300354769998838708016678155983548926439878936001435390828038983169272589824993271835390971350606937933480488746321677817416369936518320382774482697988855895446555296077185566129763529183614030906181712674833388188488679253136159081292263226818380401",10);
	mpz_init_set_str(tab[139], "1599035264430859396097624770899660879129229079931723531671814345754843320688158487944623801701401409786059095347987683525427877859137047960773305589706734977390271860266520253500054264123480589041814083695769551153010695134382421816997217699894740792404301121425017493367352847497851021780558066924250838663958908465850148370400078925470057951602534959246177172809436045467934271152459539100157255053627192672501883121268352849645504393752004000203118083840339558555606253499339151303508723888928155919550561328860039532647990386238111774424322412204598108935998234717913484688830416490048701976961142178008242595878621361626870417181449258916439983357421295245232869599041186134318909591857571509308569419475244335954892323221607065404432284211423750348775932792778678950472456147178881988664043960923260593457317665027661408293084341677705746518771017912376105766584133539873711031822465347644096004135369289184108948140452905869499483155188285228909587295587821416618653446884801745956486214572100161053508652111590249330090649664643139306455442639396084975802042833196890937465332609266979001928081078137647320564318162853190309238620758101684564036965450758721952831",10);
	mpz_init_set_str(tab[140], "12019856165909855417653126584990811503410613826760565954679878628261077792249213164265295541914979379455777058288786300637969214861801836947986067272825012047585035364213358373815578874172641953999508755521875402797533066078588981792278019586565625164955942971199787914144045994430027412281332381383626338661738444497641781922107746275677691777108010887332561955074816307180689759608684354324499512432801723059396854014277753518052039314165758432633948410272858368224768312464381036903559908434063125869759926014879484038529371721067488895993590214461586856453217352337396985104994914005195747038436939559192276689441769044949731309980178065269170774207225599585163864812870717359089196769116278657153887812126957472453955584258966322677927311131848059860621717539263670967245826567576050442637667371937702056767484133077990217753790906642690731663503789870734323587646557458318386293429434167745048101086681179398671996524387950762615888395195855170434778985071311816764103041149783543465337368735927664474333634042996691782893701000145314522009398781851326640196726117170954221781744151178453431533016057172280599631976416240185960480628334326171757808432530891192869",10);
	mpz_init_set_str(tab[141], "5180558007507147685008497558131039757969974559333803926467027688780524528459410873798342378565356112545439912122466895574964731605436591724581994994587580192509150241975957459114514494768408682173788273629928298605736751479871851152471826441809784446096011420587108590996083823599341814693254256376342951963209269578483608008428438644817085155933552692440334202637245828394877286391342956713859289858537542638600044080153711766280428944405441884465231764827601956704875142672148226905434320535081207249866528112413057620606159211780087714173237382432943935131336678857418100580252807936239366973566320950011871253149402458373334194601456746131012603683314233421205625734347279181767443807489116101233325647026718670627654856815614485074186671097826513799927960259422642186882951250625277740776834637305149586466785661356613783851883880762999705346970133434286493466275666264535224492468086126298115731568359588320827630502011206778687447898329413578457389742565735393025328410735556707233560405925184823388437796272531574158427185131062630558986050874977921781924788956500681269587931729157913428990729920641252938441381835399520148967150812094580027615434420814104126539",10);
	mpz_init_set_str(tab[142], "9724063638221073032881379407257566506259186585849297857336021810263211933929613449890624093409218317979723640155628117216117094823197686090920728423715434746496293609648606924416803309205667340785602583217197200863204250457578486269952917845531590758449357863700628422542533209493892176535597896539353707977346401598592201574985166737023252647680380807852042621655526392509178015523425642648520105558136593955052054897550702596104099805160098572000864263910742419893837564783684258854979965923157068828635780146037502587170261722343598516858814483499423766870652838040954160949940885430203359354095484103386551841758391157364332629773964054802759156333645510064397566633612410343503160186215069433637495240010708595215250067665503755046443194705665080427242969489264309812501873693169024808093872903897600963924894663660094086162816843473936801915774566005424067782406064983779574511384412241705743913779125074133525645188229852166956253711713446832881736198922691259762159360290174886663457931307365480559735909940784323652361004109117559448305603614517723251919151428791301965421431018303368826110209990252375005102268920738310442028828322469872952067021917490975031021",10);
	mpz_init_set_str(tab[143], "4191071428073282477171874524528011164197709418501047376511825400223444343523663396902858984259373095049260888907075718520146467868798202705186833950621352375739902545758549584423642226267642623878594713366611993572041031947216327582349707591424115616891673239254970850115831813291867528086842693408461448138236299088993238878818606863657021891150244128184230369933531875171455724690596451981512165495556871994627435660844352818920867016024002484532372497745529982974243990421767915566496365312880696665142021242942163615070382802330090960766149042388251643521251373195651243369424521620417647881615153648559603843797866588824027363432578507619989196379801214837755351219086948858049862040258694925897760448444615404537772779163832118425017016918141649664141719849872917529188307561755849692288459221579866015451629600037500551136174059537266761625698837948337773214217014008008996614406681676175175626838802906951549553076127066283958145349748495584972028301735679932957490684285065376151950368393474522121246177184478043494167592771029668122219715157857138721577154265809051147096636768888751964053500505798773627199077904838211800514425006984515242340886446438610238370051",10);
	mpz_init_set_str(tab[144], "122885821045071086628906246119485366140764263184549908783402136767343961890125066680499961622026921801777178835978975186860255509733313969157405073651000768249006172732436315620390357308843470925153108939470224658158533183819933017803160829859230694462090380984481564824285342749017124083531675770116172612897654596720962037049041889146696846549735364455275672118002428100514421676065705261152137059909487337342022651396934563621404843741973632488535604158649958443974561313505944239381928572452260256790656799893224025588464969115394424837434421088010909596549025761820210156752169787499893179247655958369243669506001533956882538290160173948781927263181553767604414735192689719342423876596218087381093880439333350918750811200570318713706006928175102119057695595438545032028866151569263187487746765961072975020375022967410224400054059305397645441516415676247617689902164183812327965273161889548873044449485005975353751335695830613689455247675336241712496320576264358564908713978139864739956567307218640633904624485632581148821390810934620346774731833557708809299852764985174335024485363969295355931972064697897965986436205394461470522447102654853836385482887624505162519459",10);
	mpz_init_set_str(tab[145], "52963788870425638337058592077498192806669397432541010685646320946725247574643903739295483459093603296565964078306938305536770124695058320706841586743581331115321660447680052032388244000111535968740989952911666827666327802226391130673162317669328429313160954204311554439266982724826380480002152256920070396158889131186734637968137054222226340862935942080223814682859046511321715742384318967556571072820989042394411762752078796920825487652790635602558845392378132089353035926121061967173611214726924170676773080753979555028628401688734997104934235488932702036112630103344510577560185178412453960255739718057144021557086661135416374003059034971925010650431249673837502750868049269036584690812969995661251462469352674245981599627445807365607288986043469013313866801634012908804441311326352433807218856129222452233781634898953806716423299560626385185293575156462723224347832763223113353032732774395564282157728037575377466825684902994500155211748069920178085914168369938541475655724578281702921280509411234113212893153307642475142019439512821369459909420263372496808236541708610138395553191870766298406679959884794023340154004525012893795174701244242003482143124566161725045886829",10);
	mpz_init_set_str(tab[146], "99414629225462509082785153110663661207878288916300876205772328644781265169111178944524468952219779737637737678306990926169946707374251001048340704583659621513445993740540979336895799062854367978448865132031411748450253345710325811402757111356117631819831118216445585942846842283954853383577125698023983643834202568747258287972674888319677748858735909844318018743463964333316167135937155556272078881466775255909696324980120061969716518587256668683225303764347816381175420102626308889659980215113878547743641351113618236701068160014354089693484446660200825863608161841312550016812505358087413582011353670320718128630355240971117973476739580724564579155913876997991971520770885982948020916166340432691304949275420680893269406261261387839388159604893657614317675736709782930911352716619533918677587133662508036791483393580634871539643733978066695162186780282084322711130850824704173323905987968645038292959633369834061184830577926966474769295369347019545409523346197866079011149608315150574624862951539880272828841208876758149396505166046107860540758053348186426723580886873006037034808659451159942948965400340599454483026890164119329652659706047776753635855656088224676478242331",10);
	mpz_init_set_str(tab[147], "42847705196174341414680400990696037980595542522925677644687873645900725287886918125090046118406725066921864939350313089179247030878302181451834843675557296872295223302173162094202089396090232598711460871905538463582059192001150424714588314994486699314347211951288047541366989024384541808321741175848336950492541307130068322116222876865781109758115177142901066078432968627659268035588914044753265997912180135297079116066431746708947819511107624202470105922433908860286606064231939131443451472714081654077509422329969460018160376966186612657891796510546555947215117753605709057246189809335675253846893431908229513439683108858551846568474759292287333616198880986134539725452251858650597014867692726489952433137706313464999114098603658158776296789709166431770918242521916443222793020863019118950040054608540963857129342633253629633586449344546745614902502301578343088497396705447498702603480814486011504265601982398480370661979086522550625566304188565424071504562211280280053805481183829897663315932113688397589230561025882762389893726565872487893066720993068349917863362242265601962002532223449935411004087546798364882184589660735431080296333306591780817053787774024835562122444661",10);
	mpz_init_set_str(tab[148], "322083736959131318054363271079171144654943133806705310921297000467208524114017799769590399411332562042457985729100893964760729691011015913161558698039273013580645178731715583241043126506478737294826298530351458829033515474792044439662084535061043650185138888560326181404451883345173882222936522193474488418404752698005641499105538791453492434806856390237277536621284364051448299212968213489479751234022766311173441369311365491251702095447712890752451818499821541081657325202699079851420034788397374133048311472520140171067366684051448787498915617671676594052554996521730770820847437013037220022808106266885787657775230020500989132858509815919757431356798852424891171020940039754396492980558687607025847060631492712758045876156694805348623444158746942654050220155644426528947658183263038814405384273583972267528402935197582198152541689439447228702214525487445005965233572325772111596980957312507596249502100200661402182250858772038480062204157056289528452856230388883798625739336704585483426162912220057101464020776842995191060865315459639928896572135754754789174914097026141932099176138963523127897698781573190568850449294338883514239333856058371905166350648463828030963502039",10);
	mpz_init_set_str(tab[149], "138818090629385598081430569835122763346280490670689989007079007201366873893141671700693462146284334240299391849242485298811874496825747858572631798854926668853258072033369416376889587524292335774070134666581478755313445169635371153494358434611309813229794860969500584185318761721769943238085641065387504508332448412840431486114487219116455239401755104192266618283773560906174216960789300013965772781863812280115753230173198526729483603137964255914306733773423084206194307162363303415962034993799268251343822244656180413730035040826174427412032631216492612036651203500865962223785245352619041829830293801027774480501124138835926316262017730661415452914780305395128094710025157134144888474620794358628140083132173359198717772623535461105256704432419932283895644887082747833976440676986369729008720621914692047304741665070157927403745468148401755570654460485088797571015669672407780098298792601690773983535405186485064340550120130748584906809991691260786763181035297608917207693654119676343356676215166844610730992954819330927347232950963104809354422590510299314134387975818267172734744915893278468123908174858045135174543645860058794637152891961158291126697129487909881345269378809",10);
	mpz_init_set_str(tab[150], "260565743199937236305979886303049456025848995249624596535329273377971696008240400013598633123768042692348510454842623217491430320027911873747700986713771867986741949593957906842003889343741298471514475511054330192688114019106763951686626388864384312999777360845303880756201573626245670718355646454520861130489444932686563972776380882285875379758746819701957527126619050517621674063291284712989118748324417945739314067772894682422626995217199728618733521166355626735060776088983555599798808143813475673636083981268793398393499647397622069086622734696386364588516992186080193594065576543547110998451757969910602215140161086585300208482534441079083761967650271611736957355940492161306762821271978274083910272050877604621259113810766097527036366324426276607126628105916341061918655470259798400853955877329433564430477974574843998305406226756512808020091551119343009825873960011549638281957594465818645365847199062335074365440944746579130370323163058538228518360690384606993088223123394009656091765795986026195084392808465983109568240040206848702477326857825596624442505504494148823068233496421490210469238314292711170200013479120156763019621089551222871279577674607236877049473149551",10);
	mpz_init_set_str(tab[151], "112303835319172948847877330996614315547140916952588201106726916825905800979551612405861010876344026400402208006037170606738806467932030017585259125273635675102285780274995857848903676307152499641222738945264416313048577142235015263176935973600549638902904042524325972605922878232911884079611283621898491147240950765987909072266620160265212288676019879291543694191572810773094941521278543711298310180527824134613644363210117608124152234938613083034674147622699275122811194494351912463513286309983608015337152195926849954707598348028375111776334398654142523137650823632200563439042263490268804840332707685031469554725409428318264389855972344105085101408057267064658628620410352121523214775968222636130165327253928247591762678052440188034152673885827725217671576713649942997686940507681973110768054983128985866269536007041757763269630083732057020256659458532436837234951676764977894099523723214767836152680142795866417051505047185775605189609283278229976491413457555765614021024166182818161775551058069977290081373300448838720223911457329151790767727875722832145134719872436978142742408636957662280712241713460158514356205809500787564861456689596577057521497977755719094008322927456481",10);
	mpz_init_set_str(tab[152], "962073092961861537217707000869450931516043416471841235865255328751535877637789147041634199538848770786113533106879396737928940385702115064533324321613685014621469326322243914992036107370935533873023689887112388848723156296126255596380946136967917106943705592727506171009329948382055064449969489604239515386375737837728411788056948950129489611637878168320353237011841009598927407301918406489560081042031376364050695337786600698591978521655911568752745244958070524657876840523438037450121118793728745550414052086364050896332092243204422952052274082698037411231382322689290425317212737266336663700329898498072808688562486009348433392273664001845013708543448384446574962961823567812731836529871791406106583989959540804342900100889265025209604328240682874490102698816688369055753993100635761494841569430709240321434516054811854646828023230301958166161632018329342598894244043395066715640123584433278127064995018111781044519207162657874574745134050207436367133693791573663204670321734857001049119965448214737522839305098017477814122668658807142694899375524923302268008547297068929868906695914515613341591409294519843175707809052033238852720238366684850685061945527212250917364844511",10);
	mpz_init_set_str(tab[153], "414653503066562322540831717374733351483414712499363572657925046691911963261887122374944340001243820208814932769065019994047373306237611592813862782615498241301853279644887127361567562276873215099273210341345439593799680363630416162040187785033172273092737110465555159705021207752665732777936850019427231131527943008060945480652544997505810022615925490546072245152103475137137712547126833197000394929115523212905849690586024901093142742833697886132433200576928396127544918265601794141002202200097089332228456449222905936319131756821106292334530129642854124240725781079084173311718689761791102054842186252669380544770431470029174792069949184795200908382226253696473809036545957727287421544374742096031937699672562086671789943483273225865339465471734318905234263189992687063029971026374013204276716424635682578538276419623909352782878012260143969615663399899946660123419182703273754440893264890742872765012852806177630187778287105543941715152775639405074234622024168248841212908667723367452170705108180551872343740497245532937886870191945878501501630851241943277511683885036708773498785939156229350225897405938052408730065701426325945522422736041170645261698522228480145384247984241",10);
	mpz_init_set_str(tab[154], "778317132206145983609124963703385803596479123925719559814991560959992525008971419956682067426928655565965848283465431960984512772033011087207459376185471176828768684994695327228557210863086846903276165118673922578617033443566140777472185424807044939517457824516552492346547928241082547140025317089829767947577971910722285136538071700654757095815043438171165768742579376765532272507251990850054105563003383478517012528269359965160910624019632459120970903171079054448222363983461372297147985104126555150284968137868517175132662624752378168210289732902712265686188299055635954081625104448466360933566887884940902229047051181562882614349394177492616090211649743017279145036115266360500055752666279247540226447877268510713406181619415405394569901546712445462493083342700890566104980418414331049326829669443775420040523488342790409283870793314284156424760302828438162505443431106608972952859979806522004795580969652430865016038594590220530968813446617816021011158277383093532578290283499313848738052047605722655976997824296139551625238944974978440173594799662951534818914763328764263945516994843131193347450119266553129147617523094890231850672838648044204215113931514710992148159209399",10);
	mpz_init_set_str(tab[155], "335454683980848918935532859356159281350082502411985130280261362773756778278866682001329971061006250548931280610173601175184325004746227778586414991135938077213199303232713686035508157881990431015312027166148460631383941414177006675090511918091836368932024322366634124201362157071906577817350911665716629985406105893521304893847908902982200308296283721851772446328051711385944409450625608056373319497654458279240832399684094144984352478952461589881138459266735072467183838876871851460070781579878545269772821267421330902482177591268274990498634874881068986510747156892979096209180420017289001562367328678409528860719279059253602406784588890499317534881221039240447311510565679801375524029399166355689837599035102728117478064277968039725059627566633063994334518920704083833991246560336576682259863587530267206037465623475742666401348311918456471419071690519056848039846118806948467342682651296610984066895397920197702821912634268385048847558595492278705055809217552113312541243112188204268806100432518066464726086062271636146750477985284215707714819358654732111506952262994697397760517824777389544332751001403884398662623152453897689927639993457307052016714104482840437615856619250969",10);
	mpz_init_set_str(tab[156], "2521593576653039089047610049278830891503549794572695879202834216657775535288645354396123236991322628230403570273130898850111752750925243584141843046949468423322871104290601301194126637419222034281195091194121571172503392652146915918114459824992910737299452358538793674215453794709366323923370032252711769827690808872686167296497263198289392272102878679167645834208035286158788734538328143409136972411164237450176872480338680431009575705260144221700945287035102845128295199011931096156767452358363042087635230518360177399286413769438792557329010370751556054837453067768630204756414584375068395558564663963448831572722275830502243921149273348835780930092378215634472977922939571237170143544793965275405356637683956448182741164430763631074372944318829814038559173598540215295131215916766330877979753477888918882479866579661871029336248886621432353509637520041206951701813637738469861692763914799621971037351942470978117684841973326289260406996345593690718257411427714571259440913267060199749743429439770827047361818661903809350815514554733521003331263250823975244450402465617665186404449991945422568311083760936508963530167525379119032979744759080993645547359226823309654413257463331",10);
	mpz_init_set_str(tab[157], "1086806831537459847379519931239176114238029961460831923936421547379501255709406147744729115143260052767303938787719417404398165435648779984765134353235220890452157445949249160814668580727684696775195084304666397175348962233075320760707332184571944527776063966530220073586860585519736885610972483900918772795734738624127738104790320438462728069276340710721255354543663208334437944586019429809338035109211786341026232039025971265765127128967122159553107418712129326250295230774142302443566771966454471139770784353413236459092444334628119592208803469793920659634942272208279618250014685865654478485741370168246446407843300882946467130015336813348221580869815010938457853484786955203220331867806199033699708710841785229166761441869659124993054739001415649850619003820970832792201554060126288608409273748970124038348822495834266413643923270133837344362653771137760196183481677865280510389581247278637069517098687204991568722166890503630671235415424950880699568944325344980212819033618102946092139418088541226457412943843280541830201486773090147552435774461105133330358123462681213695340317946528477126942077100963635363281502203438400303214269991163908261230911826760846461052113966695661",10);
	mpz_init_set_str(tab[158], "2039969203512308623039516529866574191226371783809310966275092881276140408048514091706463698725980006238396488350962897169740407975498522059570751024982119954468202723371096452666048449672150625733486828776044351078555244655586854977754597998419264786475256958057884082440302119919877356054006356092443821790601864378003109342866285927416118348131228851446625479874300546502460086241507468017991810680631868097193089836593992468686746745555456675356064737211398201708790816000652256790824868957915701048896901489353383516022708739475983178879169389938008848363499531824821835647939398759430332006878813146430104742332321146876315332209762139208146772444733976448288639139658113130870646127738317907802933519886320766579837602024487777539167711953933319557194371441219034173761153676663961680285620563612135375926212062946453662733025349276738773989296753713336423926767232930422118109446007072894174569217721459021297207037156420968011669260043585295791070245845021088148887698833051701597542434416774599081315711297480181764809751274779418491694991969916595972760375594684691135801200043483846857763666762597635751495905528031707297680613510096523859247813614500057510420325287834779",10);
	mpz_init_set_str(tab[159], "879226726713805016530031624372493476418566238821813026464565031830016515868909573525485854150897382688748886479265008680158115837439863007674993691767293700375795373772942571099066881808696919691132823202475115314857310446557934495412231737318703122970835748922948039531770213685467140459276739475843287191749403546919340126775369234716347008044559634973495581825823535542560297170089718715754470403352335149890221719572010754003987847334401827078463901738112624936488841696281122676845518520861667152074564541911308295405787466714148750096922007063281813644668298216498211164261880865314473094964768466111375143945230414303691908182407481998711258923680343849212403469192646759405248481055215018263064347071004250395910006472554232119381283852145260729150774091165403728891057234642167484203102462916830347024197399129921528637933925538274411589386900850447998712436677393011932905171229048417389239332837948838179096233014417437213029451078785262485951275959204088992170598197045283388540789233629852204047071569213958340633002799429929369920541539034052864259721881309101879530317218741537995696140374679581008894735282581665845300344422851601783335807667849524786991160199056789749",10);
	mpz_init_set_str(tab[160], "88330718721658332740283990433640295156801667126341971097999236312800353946837906174124323598008810175117941548891783923224644966028106917094601531531235675530208652128943416350846382040266503390970584380532002984731717494039600833773338595485142958936902551679278705846172556098739941036084233382888828122104460777000381987890230405546615692339394323189177009529933316471504019847959156184666720074801867593848100095925390099200458124169445598586251008047763775719837566636414095041336128807073041638139672463566828676341600888325222789328080777202070347645987792774173375079606061441113272484648252923027467050307603812686093064934781332479311249822111574692953913600459580856303993287799246025661108690780492798736865993960029888053528215876823925451016725379724766992592529014826941392379186960186688569681293485166840164125533350553038912713251248393295001979893686158573800783223596395610607763125424455440152462815471126562461418522238313147069226341610281898669250466052736293455022592045075998141072362824210043092525270439956754411853429908933650596800134378830982732988202823551227746293555477688868597711711751575949432561861415388754110766194444350726451647884512812706741",10);
	mpz_init_set_str(tab[161], "38070539769034741411062399876898967212581518531453389543237670850816952551087137561047583470741797185475832807572358870909821980358114081267773260089962576153519929067574612447214790659354862961508321868009293286419370239931067959356308934654096615301804999773769122219700371678556914586552304588025084920627022594887164636780689304790591363398278953294535291107401259399218232554470396315591356352239604932948531141343843132755397451517031052990674184468586187335249991220294474962815871515848480946038198831797303159503229982868171022200402814974092319835420738685668724659310212481119820440883397009824838298682577243267706110986890754298583148673330088692663136761798079349067021107041475037059937845726392396255589243396772881751070661042911111869388208638661374573807380005390411740115429579840462773532637492106908110738104874088359771379411288057510145853334178734345308137569370046508171945907057940294705711473468055548420871383084712966386836553234031498326446950868729342479114737171427755198802188377234528572878391559621361151508828290750403407220857917276153557917915416950579158652522410883902365613747764929234205434162270032553021740229805515163100660238225022276605371",10);
	mpz_init_set_str(tab[162], "71459551445821591186889748260814998781852548705210654618281382177055486342991866094866577790789127431670414713053453193888737777516738495929532639008769661503938799572315223827834723070575601243295202763850390414647959452678037074522630923747480653779954164308536473029553597883880612298192144806757061950782508768593309028203196398087212095102570007460044200709716053025446752056998957353395376540514710883423112977603640590253170622453081489256277065510640894557348591408859002888440928204922090685254995023025564399160355118655105236566417348756474911245604124354306260439401303705860637440080436614729220843698851484463049289532238097975762801106088263926599716102771800912749930569829590034759836930841418674178124589113664179435304326644350555689872530832197336497007355972994995586434762250791031052872166429499973692777556480597408480385020259950175656601733992102286204833627889484048981680368468384451083342417716141389031287584490795335979004110362718056023423627036663661405113276964466482496127541524785924861852943785925014319189424796327323332811308712474265030987456084252943246751486381450294695548774807024943090942545885049502075609851305479737699383138570865479753469",10);
	mpz_init_set_str(tab[163], "30799066673149105801549481500411264474978448491945792140479275718310914613829494286887495027830113923049948741326038326566045982109714291745628567412779724108197622615667861469796765643418084135860232391219518268713270524104233979119253928135164161779160244816979219875737600687952543900520814411712293700787261279263716191155577647575588412989207673215279050505887618853967550136566550619313407288961840390755361693347169094399116538277278121869455415235086225554217242897218230244918040056321421085344902854924018256038113056140350356960125877314040686746855377596705998249381961897225934736674668180948294183634204989803574243788394620227553767276724041752364477640294646193395220075596553304981489717192651448570771697907989261336616164783715089502335060788677052030210170424360843097753382530090934383787903731114488661587126843137483055045943732038525707995347350596085354283293620367625111104238809873698416920582035656938672484948915532789806950771566331482146095583252802038065603822371685053955830970397182733615458618771733681171570642087217076356441674055076408228355593572313018539349890630405077013781521941827750472196237276456335394587845912661766948434132724043021773745139",10);
	mpz_init_set_str(tab[164], "231514813769466490112284338926571213605977169538142306247855998375849727694662152082379852150381091468984124799645365662771794455959668229704950614143368705564676877229960694255568367327538505387733901661374379822981831551877793785319920458766559695373621587951389488022818269534797385455576775696551618508035791696518001190260293892937679729621552521078832941977955222471812036021500948360011473316055694963475870351420447450004400743448116913894563892093188856161694262154041343103341993603338442133564081527008657960691335928300408930828899717046626381180134004861108416083647487037157887182263070911254991138856229593050249923194061872428274785783754437270232207546804561424372766407321823833257765878535671625489325770169238336588297453813155508607114837220258614287585018547861413389425849022649310741134670224622288070173022911799514990221431522038826200189301351421621931852829046152895402947151737497708639605039349822720211377946786618758468442241360548856412105471524221825145614213750144191127750662962254522945508733823126653313467839791315098214213152206916005743162079600527767923035408907022524594602396500880563462744638769733924524318195638643254029769105308082104368161",10);
	mpz_init_set_str(tab[165], "99782884734640057238394550077352193064176160070939333992825935299991232636399387547505716276814250423132157788647152600654643410518617007002833714695791912098375734086113059224149966318169095822113311616052357703705169398859329121472885717728387228706030904407048869337834674169497673131353590325213747576963426221199258513002186667856139963466889136584976997992498700885350987525266908743164944999220004529258100121462212850951896720426138389888557037492164397005690226988391818877540399243038868559566119138140731581057965785097476249187255778047095970288637756095137727332052066913015049375555383562750901180847034954604657716896640667016586432672798162463470081452672765973904662321555706072134097093648874470585899406942941723069556202593470024209666494841931462757949142994128269170842540928761852929429042866812206158244572874985590960785436985998734092281588882462719052628569318891897918670222398861512423669771959773592411103895065032684899898606026396557113617458226939606637759726126312146376060535736731699389514264277767587578104638950056807330325868601180798475302856307827467974828261238926708100273632891879522852442939309755321469981142320255242486830484387783386982677391",10);
	mpz_init_set_str(tab[166], "187295484339498390500838030191596111807235530156357125754515502686062429704981681034645300389658302998408156962913100821182381714871371597831305046841985282801823593679038201652754809167978650858676726444051873276792301725469135172323815651142146793557259864652674095810459980053651084833561611538510259373000955482483062962920577759386582901263835989552775850060165774979695937141394267223249281912689057225451979114299141987053560201449526583340702188703389784634810658082619446570603672825100799686053341955350004290199290765995030825040579871090720742374728409932636708611670817013060730730450824367205287831334689740777652187863996054794474301699057339751617855905364890192317568023523355481105532595735358345020864548066913814299932640134842806463155903311189218958656280005219883432045511859323292389577948211719431048769975535645807627089138101329410395953144793300092142868938698337692380984245755635646289440476834006580651004758950374575600969773260684024837393326463095456542801898923866650622350286336463909062916565662909462530595482391173914455298440135395048646218122396826964249735645805781222397033338769212375841360412764714744940173420271662392510083206194238422433842249",10);
	mpz_init_set_str(tab[167], "80724353750323806305861191012577924188918513497389921200196181657692907202847104525932124467942728592313915651015546453929606519109561158665292475188895656887585968875665464912337322751398798520089669097386357382297482043677197259271564545642265268023179001665302535294308251403123617563265054573097921789763411812950200137018769014295617230444713311497246391375931449016248948907940929173220440504368983664169802998262930196420084446824745957419842643331160997177603393633608981471930182987618444664688990382755851849075894320143858285592489924440100639963507944680966421411630122132629174944824305302265479055305251278275168092969382299616418424032293713432947295895212267672888871818138566212356484548761939446703992620216839853963270967898117249585620194327122553371180856682249769759211615611368339019908095679251074782019859455863343087275418521672975880655805405912339713576512578983545416204209920678963550748845515456836260583051107611442084017972275354814704916523705594141769947618436186526418232973411015944806117039800713978350686652910595957130233627698355265966520010753032421591636063342291706853121369009530533987626337901592055069214744137086491171845861869716760068986009319",10);
	mpz_init_set_str(tab[168], "691541196871863087023683361104969870782600251932131291726236021092913971049793967437219329448810974860998364386273776334925745439034049053933635390358044103726003537517498006610776324993246455047908705115185051367464616260836034927611467864053184225517010077097072988069684941697034998371503463154636635367955823423135990583192613845024454255325118156248066807609847934655404971389672233769755751465623821392236775650999879086640386654122589591331759142005942600110608309196485950078620552430574842984995495717264701707078393354698169217649544404715008751720438429629003353498235855022475810282311172134382039536858230249519422605374403051980527774857311518271136189577998058524003963450180297134900819940120478121310923866713073993571072402099654512356009942997865200785006909657080124160936654711301584812034846695371191644938800601479741647632044023671106570500587668935474286331857536181235448177508948061640953631382323449857510445610603753628404973028466896984681561898726872441459371873120899989446455528550740427371380342274421430290400502757041550522348252051867763816564639905582562025732245834826152251484991303088108107526813021078555933188536304821837389951287850810681075289",10);
	mpz_init_set_str(tab[169], "298054255851772990507207528636242014307300708582748586734007725091045921522461199965441530992437530165090295050483997600352996284223675142245396853244317008705907524670041640849244596072089222125648651904644757139377249608420331053800542649406922401197831343228838457858034209871422084298117992619648389843588959895371611941356016567205539784045125925342916794079844459836479542668948732754764728881683867020054050305580947886342006647926836113863988190204561260647672181263685444483885458097577757326533058654141086435750787535874910932806953638432168771991508963170100445357739653514687074231676115189918659040385897237542871142916367715403607470963501264374859697708117163223845708247027708065142253394191926070285008186553334891229132205304951094825440285432079901538337978062201533513363698180570983053987018925704983598968623059237768650129410974202246931885753285311189417409030598094112478164506356614567251015125781406888587002058170217813842543375269232600397753178351282022268989277315107895451422332805369124197064927520275636455162616688284908275132096634355006204939359799306084233090597954810071620390031251630974594344056412084857607204259147378211915069005063699403543449559",10);
	mpz_init_set_str(tab[170], "559456828269337237402159839133920625463123603813094215006524941064167402579283319656710437524088078662547676788495485054954928060178545684632311030799657679914336861851655887348118046919536382133758142438184706556278874555016352256437677502019026038443261152371532047348375117832901313682546301692101038012676261149317016381802824600624783492558020588404686047356366979136222621854244837119732402935689671506319551501658902181092072803185174979387393145882807563489482122139957133613604026916335047974861356035267143681026420223950818897078481423414442080141834689569863712980072806713182930518389738256715069985318308271861212887747892069052246969859565018281349177368600429345919206431195860382134763331557466800140537408170876860798997573298620500496012043885272947435070589912577820446197753661442982112936190976555294040755489686597110992934323615149925215534975424168798697642472746770619477575604738981867531487788299670934725950498978436685379623180029719660607383576070039805140631845354808091462182522597549005743446696900006937104934006730446614372579735909961020927600793683616292678817386880374357171451357964198279458989191734052551749949525870600866448470591871305840989908801",10);
	mpz_init_set_str(tab[171], "241125892984084349320330890666719789574606273243443606667812249598656150511671110772042198572881961903558048695841554058685573993936953190076526054274652460043079187458063687447038878222320180699649759390857608525756194933212047822524639003370200222569045556672130312407149675785980466197177456029295547383463468555355634060557017402869281685292506873602419686410594168007711950019179524798604665665282248419223726697214986840050683378172810416115966445875490059863966794642321524587463335600940405677165244451200138926522387116522802944640825493491624536541130751204611260294411379693381843053425977188644195163672190865172182754619341481761518444009472522879261495445866785048091177971845415824700082995901268190860571622921647927004367954091705435713781190914552640344515424252321040612311231828081925290675498310895331731565616054923354837954693478129617767895574407816752238683905753858136994835085642501184906071236757158172866884665059706211398617590592809173721782321286187156015612325347922287420200667239543621475425526363902989892226556900822490794581866177193200019795942077638622144570293745441347940895535282569458446824341637376649804228245650228973439290825096532817466650693231",10);
	mpz_init_set_str(tab[172], "1812529477001153151089074089456126031321195260314116115614464611284527518121509988652951862485333565110676713056423567773840378795708242570360058358128433595865855271833362275326844747807298958680568716106900019634124759219651247545269657271683395855080083412071428301730644232187928730731710576928302621299412213192039431318547840887809094603207134687526183102745411436731816430012330924710529824591400035869052588981270683086084453420455307318880540711197575554889904378403989675156064467920536663463673194274950783174252468982663901519459455884758037938259269124057617789518876176013909098749937582164215325626105421483990406648686310399240963297901013489388647952883932911391414388202922558790575049063055773155955931454654966937149780765903194476885102060597404691257503110211207005425814971998321453792343333188567893301384596376478402858443587386041970321282040280279878104475798602331018109673250952869560939467853069762076534877945392438260049434307611736996850373736563132669065013679449878872339159940331490660140387877101258568791139717726205903919074768627945408963215921192531895069444216333079345051142162205393931349827776928246895100887153654938035799062325456974795098332469",10);
	mpz_init_set_str(tab[173], "781200204587497008119390932555590319499435157195384045829834247463631360310370805109422252731178766562701663327318557710525203260950252547825185152353354879818183622160179140665870086304945851191325116642073908462307771223669687692011222284095543613539515950602785598045907664072997282945367258656098429780046663885768994898294119422645719773982275050323784917283272329231412881335314628550238354398893415459561665850927664410102399424216237454437513046526155064157548787092119549992263785673751301952843146732503787548102814131528141554887025486330714351389744992468833267282635631861994821561223097912776805344851436659599865265583799782072855181395336813926507267692975084809699601315459622838737846146177038230217006456956290749911555510104276819537478988117481421931983840501030219338526252931276546584499976604272762012896761038262191631989186163384089208472559360800627463029069197604668805269171160686780764910644673067454986532394464140890081306186580658645642511080458710180367020895842897793978177934282872474520507175030642443148981218339994744589121225278644471263146062033981246774930457239557197717042271910524784411775771856074411788482363225278293429395862271956136687381294139",10);
	mpz_init_set_str(tab[174], "1466336346893932899231060938370005959338846965594119937532101870529182762160301580820238056750634854174537460862646666329036866445727968239421287211725902779055476914913190080739417400976104857572580091330482115884006930208697859264123152732791867246759787480365785496100091183840034343161953856734996820631224480472359899936705203278237557533994571962208682130121037852316039491879975718090818628094442629018063544485847982616642322817148343620974357435358838623905932642128827647201256154547714160742111614168435183587970247406975096329242699810769252692051748721362612791720770826395252460888699503970850198431519285980548238978787225112985939308001919912915416193883101725315654240056164350061575214692012120483168348546815868252154172639615684331800047567023300395227320016160866467389484312346642056118005756549551425680820138468571027912480862195307953989917170586746421386520921069285793650725660020871474800029493133437519916716257822482552379992354857895230451952352879574329273596066674952007722380391728175944053573792574918182152032031640500576270531487820007835851241680244758303111180371013461190146374009224163690462010671534951738136617707306844870961441421294692609234550967421",10);
	mpz_init_set_str(tab[175], "631990965511285079568587264437472568475043042171065693076335906198077770491089981333522602459523622149225645631800713187814889438108754311190574788253864097772910550327584924798688899820701193613782019363437791946006986919948777342837078827833294783353468404037653548819139300235054801902802112252783629692057751083587116872719942612920387297151660515711941998082167314348213021000269534497142828708704773106785387673400480507772841134190936100639948054639659446903456968757524715943741402610064803279850105706595564126415176632406266517903603618441547910274303698907286113231652226176353810643029486211436435523984812257616290999857294023696939841748827482466544379563616843611046977464206834876538917532257223928245558223677639216678448407674359947005820501387042470342974926965333447444867738621402726186860481072856664468433479679954113030279251606177728169654300522887707617590516980862177063462759468995605638812711540511571084104707121489980075776704943752844324791464091096535916919904736904315328345948834843831887090304599789736507525805637055748372599071250423377251885164185490828640918739906801772953087197975614550589126599431564199136882231849250139384381252578012514580091466958451",10);
	mpz_init_set_str(tab[176], "18530518990850162381950088042597737781305693468699489963519669258671305330101663384821388748306099865290163851656394396501662136142180010262675945339291494281229056545095381913333636636873152602338468812976353742107010524806743451143738697802268632993846854782429695535137206741706060910168696928412768433149871661548749109408407092516032177735063951324219776731808866935779910100725101723395161204476749175391536170487304112691131161946538255469909155195639063073515337288302426431771144373689556888773347372083843578464603327285240262205090495004512817050430332042107573839627612544484295064420730684372476766023183494827078166959791902085774023854127496297471954530510788844166531203439365002140504428480325657866309533697010758499368405132864973281529986899337202857810230570858811502070785410629811207674407437746420635095450105063881935378460109567160314570951028081587500123881752972234813533176736303030687213770423051625651069094783429300257825241895447372337534155786166194979178534352853397469883344527204451183228067189579943136884820098461145464299952276796264519253333702103957324544986775564124699297449328511180045529344077529543947099200738594389780331178039821812481098847415059",10);
	mpz_init_set_str(tab[177], "7986653685056419986620487946359624983742753885009480174276977450487332597273816918858018550519929041940060620063905984892216380677279584423213332441234634035209723370936109604646797390492328771607880058392808462848121536191706427442951378752777780820347994411227198775644136105675312252282708376145903194687594686127510866155023456874409868603812563020738723771409621649321141253412518842783314479129478894593752089480028072569877530798957988107530845889320436184685110371258345792093363225060199019061312717368136582318244034059938553010394003346945024148735473110148364324879501006672731172765334924964537486155992086270470689959670309798968604281128950904210412402650149991835774948682366315922557408675020358540379409023411636913227782612264803484339424353614334431716209376040147757392508511981448630507669605668707293726138995282533114148116307223446095580079893103164212553393035531033204632799173346606226189135052335250655610779851658028411122679256937817477477221143837630036025948306079814309519721491225118459971296958708955491997357462436753695113279431299190007798186825606805606878889300268137745397200660588318599623147297415233441199755518334181995322737735163201179353603235890429",10);
	mpz_init_set_str(tab[178], "14991189863597781366997621226461569865076306016177887380487412430265086012052245678320503497379634791019742555990023066769844668139023628302504839779486818873514306744982163967886912039230380455291821269697870177364571514568655451975284606522035324092022105518985623687926000254040203276326475815085929662418246174192938029511401337845470031787666736621293799376033373351045947271486607294226685414421690082891752761924229027167125110014749448675156506553272002026473907866236662983302855798314851523017638024015829454977864091773759372123918210458650868993798138622065027236258738548487794707116371123657333703712755447315106237070471648787391185297989144504654811215183228174930723743582446286731668082640583457213844412760881703625989039752487763384757759401563797111968476531824778505175265397199517267008595617136854293792219134996680485721174228639832694487899381718004287600220338154537964148339979669151825955940272248765151714897679794303908580620693416924221065132031008451738155434291458398553135625722508401007231506356370173997739819459655066680618661391928177996075946965002101475556894301431376881731636506765544656833239358721401053203253397522861332287923034215846297208967558782731",10);
	mpz_init_set_str(tab[179], "6461202831210643769175974748604936611847887892972669460990074757444252071194517887356137007370622594929509041631699941777803051967919183798379585944958818934484666207087312670159259088908293976230774967239782046444130322779090499801347665410997224683661527478682803809496106109491327612096711076302035684502264101077156290719413976611397583700484363483777627531070383914300803274010727743811701413615748425726345440389342710709030922416357012378992454324460232873410254290348001745803530849073701006420601988350822495095459423554490289385408748707678524536326997746110026738827516314398239518767155954296310826300197597792810788177373280627365600863433321281506223633743971343395141933484034349581348943618091470059166941899940014262801276133322226018830594302073996555258413385216479535730539386192991942080704710985984200624446447183569289345826092543767891324284633520459847955694965744605862547934531237404436987010257339217780389120899991344984598247518862694339279071905364642699144992179618569776401454686401120834116779239595544993025862187111333739346643059921044716308733141915905735965021443916923436026335334415949747095126163608923853930602214332353234216094827747029754097065017835357061",10);
	mpz_init_set_str(tab[180], "48568490275018275603091180759648670724802222581461363194385053126977491270196459731616859909310287746925519455191409713230856458828653806898473652734283006511101357204694995994847461625244532970729126758811023158062474585518474585447739126939746087076872606384748231997594618870011585645552154649369866063285813624919271415759434989484520337843602616420780034814071040238679144374000491617018717516933559588701216302847224079363454775461876767586631895767769984315683699032640659677672169403440328605474943462231754019155725320814614727239542187406828093489177900282363951033663972479093337363846735123740261603746763939941771875601614575366813716521668167795673992824468777560560478284214575670610262107046933549267597287819865198026844589853239094970890095663162808690320614326220944946927528561260735175314621894333368484585174725372434552626943947175527184490462644601840837824694074540227446270456225850243431187292278818310831452097427368195975759959007967562896677022315541597040426938538828754768564246005802866551240764103889030961775113478066662261930174917483009304962987633214472147632410338753570836858614690027802899332410827204934685347005135855895614248017642372970512960079074869639",10);
	mpz_init_set_str(tab[181], "20933019308532876784932298907408577082389757932609847536779957897727298737454674144326866620912734018924898885187497586402499133755149790773242144328475975806284684955223543273779255960480393710384253633047550981124926546358462546327975563711030563530132093351826487990963280732974993413232978653878412273276185672340205980192316480467828265610592727677356195004864618342870711225194211886935067249798364182730224226527153578205649008224068886829838347075908863240059674283068124321076705012882781628959700632221885982256117613271098947440242682772342908293835675021698862895509172138489228403817942838332052751214855258114903678384295881983096711820838980319935490907346043128601566140496482114033022968137228359734334431050361900349570018226746049932453631230823170545528184774601227272125764809903376860560602036457681816856210306635519292182212841232652216515389399823393401102443146126838029342566633341454918841722972170691968355853991195692465552542332434019608467796617998428324424010510235193305251190028501035483584769328776172344525073909046731434891905389435177010439047669915437495629568856002789030686062931401983049612269066525326849384559213553891009740895603862750291085794081268814409",10);
	mpz_init_set_str(tab[182], "39291908632489784962900765234555774616364998068402242824257507979724790437588935922878039666632022787262745239249850458003762875192380929780865185062034952267480997978598251759831596454822827173319863547878117734872541939684445939627220953694254584445189938565261319686054046665839372787251693111340221645198223222559690575349382906492976953315474516684411048164583471553091427798566397718168142471199249707259283989003404280205034913348658304977585203676125917311388112517406293679236785047383225841829229260945489001496981784539023314336789629612123927632744921328432436386234153735586509927352008715105871637431132027412893447361706191471752296666029547746700260194995241046493426931929591717523702044600969241357486205846270945203717273191270427831450087391498712230469376989912744462064370606059934756829529112515695104029406352826299553075197653265001492252784279482889237800177506303044004032799086712846935830519453564013462644746818740870544389806837445758383411711053273152005705393277912462607768475018694519039953778160046226048076066803755929769901511508243754527715056995270507967434619964051638807018619284232492545559920359208792160445727154907419551926646272679733144984703971569537951",10);
	mpz_init_set_str(tab[183], "16934812620603097319010229816093538859653314167481366657254985939261384678600831382760435096318401821310243198116685547399621799207916180735552894761737064427284310128775846508487418072028638511700861189135468743730065576003996199979332231042223725895876863521627628784689294112976769671305479730987635529080434208923226637975584032698473066878969516690981161758935476239382405381182117416530469405086876623828751399260467244768370047653271729445339222784410270361208276495002112575751054355422170337828397811467505759645199149136319048479156330362825412809713061092554380082466920260037785778688715756210630675732817903814957075812895368524325239863058735078827812144042948891038667007661654030252715581223017743025076554719742777382802144745437554395354987665735944971332301482652392863149743731211831880193527047494264589836674138068135107375410188557215643160950024457125261491876505216611965738136406373237029342953884486089802399885878877315204632006746939121863250447463960728514459024502780271383948212733057337706220078386979923426720784792418805730827551460053058201445189564961588933964321204506256325825024911504204287136325674818989421152108403765097826880384543524964985488407411746470856881",10);
	mpz_init_set_str(tab[184], "145075433179365921288287239285497689089842274166448306924395490626137649429365922639766652510488455845356692794617911730211512863857127300346489976061313108727742283691551744999489041230079911723707872336791873446955785398711994479004330265093961127708827026091642086344589191580816750865710728252543564063130345238265156777558419127308015919487815674917316632033331619240220916178576821392460717069848469294140336678745103898258865866879448002073918776026658224802551575630119696534336289301615540882206536576044411375799379449316146012803653485390330844687819069557660195590444578610767546059349900527952120601195503581001194969128210801429524832753964168512907932019368965860979772791726788601758009170572469575435337339313897228291555243785199875821098267434910961173796295139253635249712178979820791944882935830116727152162278872545131672077964197801298102775975598850748538469870244019626355151240668516427250196608642071177222219943059467991718513818799457478030554905649895140491988745448489248791716704303483648313492538027221374818671256550852307840004326375037954921234349553771881893862701465891532270799730792914028576449234782978799561839642582455477590212792873764969914522876412496911",10);
	mpz_init_set_str(tab[185], "62527511700306712075251800132049503997722020165739220284414456459865326904056712657739427232020524469348734594480319955721162044322421866449337179682425949861656924271058802094779776770164441952918092977157297455637943506844869620450866344255497246042504448245497739214517941571332019623121323876846276111209178797692282571127678643869754861299248555889363468406365927892535214872966610020150569057104690265774485108539139780149571188625042088893858992467489694889899729096581589206298940688996298120231017264275141302969532542655258931518374652203232594060450018979351544299481613381240812351579807127547363979115262043411515031694258855416125202916958556629063318700348024286082282073234245887357701952516734387012630393244289705393660310071421146478893353264446624265906203205018316792625949140302761328244545342780309402581942194066951750665602569252359482296445483104672620080514075172458959070184728130580144834738324732677382776795458630704430679455902566173031169164335104805552047149288298866229229899554801452423115283889732412546847311573417344679041864667641358571052004657675681096254824331799250408714683971745946316449620191463862611152885953038310841381713728592702033159359733786168641",10);
	mpz_init_set_str(tab[186], "117366025442107030322224376581967630473682399800656680301835951916545358388357031415571221880985160778893564470845890589741113906860415985980310390633602304960743507506465361704586634355134648584479668720464625618587230387558003533514503184461014552316441064108138447852772655988880751450359979156307743327072449297756511833044761073992184878865642881008109155314965279965338721188468648506500720109507411658959532373104789053691422486305473433677800289805566503865264224684766834496278058045006972573705088090019928803021697974496762124358155669680777653352445627272147098232669664096110944762014069527113265566367162397029966730024722538356485589697957012326942517003669493381532636188506971978822229418993127886527187907504942857687868192222226699539268498354842967589601202767656190917017152794675020683410295086564432266099283607889011522711073036021250165145764259470255567622125027411877721317353700829789645409056391435582372775933935109605300277679408761099726718918670765168658018895067827802272498813781518271485615463264022092228305046549639517042563500037405705531278588789001452452134925485906249607076982211467449118347430939429848845528270849206481370482149434875860660849007017710000999",10);
	mpz_init_set_str(tab[187], "50584756965548130068878706306828048734157114314083029210091295276031049465381880540111196630704604295703126286934578844178420093856839289957513778363082593438080451735286570894676839407063033539910737218520253641611096297037499522944750872502697272048386098630607671024545014731207603875105151016368637373968225647333056600042292022890631682791092081714495045940750035665060988832229987506301810367197694425011558452808164082141003091597659049915131924906199163165928880839134505667895843017398005179266892966798589314102351827008104475598365093632415168594904065354295399338280625225423817192428063966185817459104246993119915660640655414031645289159819472312912224828581551647440566197246504922872380879586038119093217988134630371663471190847779707501424722790937319031118118392859818285234392854504933914549837182309270306688791235000163966288472478525158821177824395831680149645135886814519297887779445057639337171303304708736002666427526032239884419679825176033982215853947099787691606143774233782779446988739834375010300264666793521750399475062894631845344868516121859083981071768059626006870152884425593580650179333142470570007742734894264852422684736007993470677806406431495944825922024633010430569",10);
	mpz_init_set_str(tab[188], "380242710363118079696600854167289443104476600590261012448840580931106779154368083238828396229990242770679891814693546644884375216169530654208150227256701657975412525555557123643660777064039448627838333394731500304471113530024137529470349624811272115724835635386193908309168271133320704019027818749916681409464634869492975913980616532674309724977564883958286892559362174028619021304049848869639539440072838019941822434990917317336487437091033213435741111965871207207487679726543724616495414259534332652263332365812402215970173536657618699558375785208057143926773781310627372642555240538821738221556089283762508095733414885804132014085040510546784586648140085672331689822766059521627984487115912925207742036070442757216019166341724635352166293961008874527098558946901629236520089559983777989495621106110295687538174810735941865817332924940790112516344162437202327375832044587811919329529909575440676851401792181555822765311250868555499438470758865606294224719073378049918084407708375163229502501820490321083089481979430642229663942169347223399737363419783898848651339428974479848555230180436102443814140542101706081766094408227668898873444366187433651581703208615806763947730122137986145964459077154403731",10);
	mpz_init_set_str(tab[189], "163884608166503892349234968146101749978029414854402496365450290381307021815532643875935038775125794634163033372132918603945165718169067711963712747947638414587402798514445120290417794914601002358598321693129276631227049931440403275201720688293658281877404158851449574481251524858461223432200989881214089687479257628751472618925645725582627491465330464986021650693085097006334798182045484862814641498671393186594925469481085363772026085386235314990804419257290490306427189962140345309709523545859297373125496249665145355083144794299433659509659963424672629032439499744880397608941308672232169173490674481301640989261101815781580898070652460045664156845348376924774958313612171653821661313946958470764536817546360828360104260693283317836783672697194824921179478906114602200940158600353008313472612696733537441328953343427190944167270490649480538494544334010434203098983611217346937231027391027014931722954172430250559611849149124347420257980897071076312810853920625939514694379722309695351915578284631328386811566733134606800985159074988653285286803633926860403768727293888000814727304207767960153283894573645835321241186689946125295414454521826783903831714082913412715261471682641472028910681862253548008061",10);
	mpz_init_set_str(tab[190], "307616352683762526474550091021337159471521569877521159071112029973265384335883779340212172550062106401480032478087079235711459549881150299254393533850671641302108733174445713027721568644807913939921211716337783746317130845789527261341512846472319141621392029027430871822117131346856449551393505368682595260256889609419817514410318774933516567506849991122254096080523998789152788234976327735538387407018925958132934349907652109725218336606645869669514559580389806630857532898773873214744790135963275115681035883942233392719870391156013527942726010233318229436759989080297544467827189595906786221238876230563869049448332642615542799394797773032348730598345329308916337066617742152997039450076773556493063307180988190587759505570455229999902531814456179492422734188043418052344752454026876393501957474843229211218383421885376969446222336277099201025722427411696682847048124071539842737589696846531507572784049874878660617136801952661399045722843922275492027797730362842383730285836075507052667523972776669756219390921359389563798129215001903730387527006605174168558933598040354197481181215972806877045639698560280220148770376256184139188616492245633824129597895770187672033713668809630792085247393417912618379",10);
	mpz_init_set_str(tab[191], "132582648006701648910531089230196315732225796617211619559649284918477380648765908895631446369076767859037893998055531150591639065998775778978643613089639477401208863998186102314947996085912210908106042249741584794662683394535286249638192036829569550038819964510822705755332483610495129756650600813902198557170719421659941348710847391996345640595452346173691515410705843478124851729274797254017044972425157087955294704810198059291569103077464369827560775179148006657899596679371539355555004548600171574858526465979102592262264138588241830543314910410560156887243555293608241665633518715835824861353955655373027560312231368967298946539157840176942302887886836932142941275712246867941724002983089402848510285395005910143324346900866204129957991212030613361234198435046713180560588307685583725599343671657431790035123254832597473831321826935429755642086366214441270307077741474833672219901159340855079763869925496072702725985961641597062988706545730500737063980821786385067387753195348543539699702832266744664930557487105896901996993691665820507797024139846830066648900380755392659114389104084279764006670710079480774884120032166415363990293708157868178199856693076950886646530591256950871388741626563120338521349",10);
	mpz_init_set_str(tab[192], "244539050426484165173081986214556690144485884530895218429192082590905021511907793019426582313224254547361031182905938667832350469366195735306206367860308760987498482898107246560658638333150975201624099837391100932229858646178166273845600391712591206557569017210740501860116729105299660563673870901878573682385672170115599489261818455594611449108393711471563114081965890226388990401003574079427181499608326023728534580170488274186469297215573179485593672233667128618255419239871823787013748695351560159431419867969797165306996690781313012222488750537726047909977827055323437748840388897605002434058755922047498659942931914237561408506792309882282530824307897197413211019885345116061222290468339718450651763605282029723189880197048184861006802059704112023327535402667479242728951138290470014290653708328156007520532167410772117338693752676568331579901503466645549780996402168200335110371021336684208539071122324866492573292535946428570296610958343388875223005467161947023931175674404298957948268707209638492339887406830864532642796269334422374821490259230496733840157618648815150229825792141553781586999280512251430705352853510695500426578984244282431177232209774918373953590252085584689",10);
	mpz_init_set_str(tab[193], "105396330733814675189598336058473933452273416232815839142981787596680064271632258791372856976999653709912604439832459565835743052296830361916974944547793075985611846129084223267643873121588070311899987029915564501791069076502789664027453768828126810026312246417829156301710310244384153702943438358709665257108224705319823379871843754361277534565717689644243702169327298687573654862832540428233115226331188516226998404053480446174368267099912040358290872732710532434468085692384756052202925687696522428714941963094982578247315573726745908267892651481759926649200443460844401669750207614867756049079323802402471922435403655036388967066427485559263770785276703692085093949570583745022386807191854418652230910113876554810694838364927767675093931687732472282054167758549683553616177940603192576159271748289435239241349364154042782572977007403600950910937547994124231955609449334494344432569910196110893880339653722017458299089082992910713797839323046000605221115356346799167314336715668252850875703812807354190198491472344102613569045192083136043548062301728344092285107933637639329749054916413009679863996689900780366634007079863109760683855542209285727837387082412989819173997398648887000959",10);
	mpz_init_set_str(tab[194], "197832091795025689625023326847576362326889080585494231709216394816042162403133404552716105091398421928815074226970904382276371529717252349862720951598989787638886272664568762467572838411519138938113896768449400654173955644758136515541090716895486286105073334923489066004834433846187425396012161559619766109050008785623519986812811130576040662328690512580494559292310405193148693234411891430256589833183135753196384475357925013816853661447398702203845280837036707052168634165056305443694122694539412168980018673187565906733360322842082226887993399185020372759172062087756661138811874618162446969153533540936426415893831918618187179481994978694766567436865088832707287715087244198893528832988886832226577276756673162046060613079411981552554502866300626626871976140757990707367721470876990241561138850037478210084110523435314642927003245915343780248140316304516249772826089354074071104290156261377524708108537960816992491793661580660713369958265299801600055411422934015142360321120593077856980149384132597540302968912126169406908022181891547701230585619717471857676687513486891456535929065842517009303882417934411407440630458490152659845102398253624486822380857707908964528454513937238013401",10);
	mpz_init_set_str(tab[195], "85265631563656072228385053871305412162889193732348013866672266165714171995750497362220641294392719851319296991824459788761116129308135762790832730139164598472359983518429136623523893355364748882327089507201691681948974882890756838198210098981954589311286607352023787448083640987706780345681241632196119193000553786603737114316321597278273525463665610922193155054985784638247086784031525206440590218101931509627641708879265680955063928083828840649857316040762820739484681325139267646232166881346486644830388048143840905802078299144937439788725155048743780659203158759823120950827917960428014643705172956143599785250241556924438674356739835817444390565288853286896841005202602249723110927018210224689654806282126132841852124237226564049150990735375570076181821716666693994875487953947982794112850844366153108546251635600620611101538398989513169286948476327246503652088044511605924645949057348653713149194779861112123763963068141264767462452012344214489623882323284560526357298402975616556358444384561149539870579601126379014377357560395257059230382402098230370658652318312850217766985427378124831009973322129731316606911727609255796393239133647312153820446149672108763711763895506949583775831",10);
	mpz_init_set_str(tab[196], "640936851167814996918647885868353084868697503355476367502912448470762061382710325503917072242960771168633262730396465248388590580208799022237566890161869262548233523675939093235486291071188706003456765673802075543374459511632973803749318626678701552387388394109350855375365946984990410337389215633823741621532846757872986261355226172113476608113099917766966922008832598283365543841030367662178642710473422508192489134626849766642736028002017303431741014924441544108447453827704050145763035330516439177869751473948838370269638326537821405035143015159379971572051884712002730339710659300622711379667999271686493987710424547216648451696302644201462513290510998554420026083119489549196463623317518402059158272409444199904480675996463292520698828198484477613141470290391463095192580933459321907455803369528096895711314810783633719544716325765285597070921840586077985975991570082853078324282446923449310580905411613475077034599736715589282747417321818022241959497329431463149723611442613667568782412281596462488422844893303695940056769021925521044407125969443131939395053118478544508752373401203012461539525114222610999878729829051532906618063517704264252115525621820061058132360050716317469869",10);
	mpz_init_set_str(tab[197], "276243782853328263671937238809260179578408623946210314393755265290898448455948150292188258136716092373680936236800876522055482540069992378584391329659765652158288648704329749184494591451682332287489866005408694559194392049513811709415956328098520369078964397861130218666782723150530866855414751938178032638880656952643257078644102480180908418096746064557562743385806849860130549395484088462398995008214045101030962817024172249423019228068869457779080377432434305510740852599740445612823868227452585285661862885271949337586214118737801025570146639533692767747554362310873176776415294158568388604636907686096878908703192979850375482681106439650830343228210240376955031241824499995703675821649850431287497215408470450158831171354475679076421194953546809851263973695158720594028002382320967742113451252266609762051576683447746133123772736404838092337567313292599611955652366705709676757765734624006652860370232405407758201912486524418980864136865703567586284543348984960617530876531766490722145219693368075332510246149013892950164467448449899570139471292829989865879267894064252683272272935918498370923535324229945340947732556321210682752385376130537892661791543004446316055047181858732829513539",10);
	mpz_init_set_str(tab[198], "518517912594762332507186139667497645658776280214580381309856170812846507658612653332668911444555263875424309548890740385946369779388918408990191614140952233401520920653834726427508409476591663156796523430105879114589937744911075807233198768983069555881397210834464841998671051110857241962947875447763406971820073027119245885436377973239802575963497833473476239905145572011242724967393567438702521952772998809127723709913121461213973446653631998476278481073873209183733990146612576567922295582387799294896628942424610241548137406169097516673430699263938397001789974732010208844825923374203773506151411410794373636057733458698268597422308839158983173252023397830525801101243667045299939071263872387265859042379240357722724866881138803649245352012573942389031449464926693644010797975168591423131744925948230388630453681923959679111675507544116048030375769034137090654577180197028140364344499561070492259952477995301337320991187002911729742660613350779993745233339510053688126401657074457063144971535811538153134081518682690015505926138737746524925364909279493738970597972849142507580670081573237081385475817406092298901892431702690121454013385822749779961460228052429396029079281029500833124021",10);
	mpz_init_set_str(tab[199], "223481220328342565310597226196691485278932576772484144344548009620336844800862053586380300832603318730307877415571909106342885374916623834274772585694750412596055516801802767090256124484411006820579301598375633898388263168056673672917508669431702978584882197869654346901427223028779471286030534317986028404854451474688394976623078906466354910240267566227068259399117741536845614460946627566080786961645162486734048918972555349783222555507715391343276025342839353158189349753190020500774509396009141496100447074185007014107247222058881029686248631382757449107771479109496400012119972974281826381151258318052375037140883120698953765489015109677521747671622084464956620274636020496524273739714728998911585247265452594178494417625770824372824746717419369169672554719383404960568653927297662903369782063083687297499725536909226621697132143751514016701091956453713086072122764664919128497032479310821382164039518015974876385347201598254955519086724354186177304195569328833139582479114199090994215482731934772944000789134552239396683054165795968752242832275899461801496327726297980420767268805158065182077140077302025780826715638063859442346679769289605155163389358290597069688533170123714859076453051",10);
	mpz_init_set_str(tab[200], "1914496225788944529140058870073764327141179989992378665082144814604195413416726111549090712930232688851289513130970593830459471824667946411712289653978357289771125622609281633323396479510238984853515077626934929198427563340928863757937205466717876556139207835742887389062853872165391042553002735290807353359397427419835028401430776688850213035069614367110867620147710954582399405849456981467835403960433584439770697228154752698605868127900722422192712859917379949952321677228956508428530638535907364488188586146335542007188477092126899572689864427959857229087216408016127194135671404679349564056246000113709867008693213956565868267199676994068389933823506527158548029074682366913643309312076631655750152657265753010702853572062690239276822253325423493030631274667483694991324958461676089741881527882501133382878246338658934906644633389704853467939048870640368009235420832574840423579094726044900668652387816681379770356307263924589276852167192870391504120909802410883250357174354911256541776995708744259756528978508078838426060451992619192772477447239515558929234593996401573811149306126676224556044617367130416450992207490135235072839686867648487153686550970327835949682658083578042530181",10);
	mpz_init_set_str(tab[201], "825147873315035092059365373001792424997848575686715204650404415094408223182608954077658097272930288894905780159448325940928032356431884903447996840864671991891355143344600383962383882668913002471864998457208954484522279799940340279670935556155404795695998577205184464686090018903283539340344178910337969297900291217948897241016664752894441818115003792224783944283663421425014143921115959012637059106946874893541170505334698413099129163125211363965059242624390758429450642885680255132696705208976074094409280629070618605098233626706693715829331568450698465736590271854950820672474375416799662108242026049008952680746775215279889223163060784443476061477931313205334200531188100139780266313505028243628315795281539547612929889559019493128310391183257525496202079381685472541261057096982394678750938517357988488020524171962000944763836990962791844681730063245998611980466378839756222562589826925352188189179148989674681023568430751497978323284060127138738276112124839090680903942146966751569505885150468775955063989736981979361632054808818872084937779760231205898500110012449078312605350940597452783655230085233209490377641428248286316393905039956497963238903468211297294313225634022136330508011",10);
	mpz_init_set_str(tab[202], "1548827446663256124074307625889675340657214611903834340051455155014794089454131424243214386760558245280693216122955210408841712706156368647075242330068491047424840628690908841358627751923783338746493697800190357721527898742811450780171199222574762133916619139115995897751848782581801353425379212850263148867752518782646537976757498341279822345371318022992691904699498162257161119332210698007478841803990769811774494057577194933172147315471684439553904703673160379511428236878225815318681286575549057870944566192385453483815477967530661754306100322219524498331558074085046900055758166385593797321503014091991282410032810090861787428164538688201327456463216780471265355521418034833137437233469995009501873499727994185658608539798716403574949202940267605861780701205994309247981891395495956601182156056943416906748501287975078339475508412271226455562690536348057719471455453553045902675487633370324640939781743695236234218252576514992724973403259032146726833816030150404549538954053123206542297589528374106143031943613035780286682905662028926952934254816768087173750786543088873213219788656481065665840095450008506908852695859519405173927306675927626107332419734995219283293270389614636406916429",10);
	mpz_init_set_str(tab[203], "667544629511863389476026586758450071823259497730552600562177171811376252554730643848825400693800603715978776148993695686210778176353394886889429444259519641440106310965781710625568561079150618999738783751882044177978524358151735286253786864929722479718062848958994231931046825292756383326338440738463417162001335595320657867982481785091603430855038067909850210925483707932836442432182810841223380817520021788874806938815771016197195492968295993447732927283132123569425570094515326402351634514061643942377108028918130451524471004005715216105929238876615058780901529930655213924031769712190926645567799073648242718724141149161430381538916174614772133735646432383115368229731173013082235447625567849095307478382765494018860280653246769940803106467255338126427482219783547285880195191458757295109509260542612686808604055117258764313944125688898602347519621166012877092197300481362784053135169982609920245045931532646816948066860477961864463536804642855239265374708994824360851289196896102019730261086729239747646767697218421303560332340334467516714663826027045571886589000071304354897728910943339301977081138953666477715511915452863629962669177324806852260272905782939511099399537923908291380980899",10);
	mpz_init_set_str(tab[204], "5017894607792823610876094298463336301437032753770024481180301559077596178565239138370166758590139877479229813916273926429634275652454687545097911183077274456490120256858927160940622172796336379301063018460196449429078643516574551909553415528267554453640863737482107846733739998945489922531420169197206073154980657267387609440150065701476408364917459256197584032407150411960468842731426748427196593780296424816638997434993606823045980363227793468567100405843452848825035116017095008591178803602613202323542284289545455600840998458464603780020134665682785797437594205410269375829594751664575207391420766298033561429784913780159140728330353401453250016551410607682554384204742483680659113706952851569721150114693538641052179212376311117144551125965934975233284570903474764572262716128053031213471484580035470596523883653625068390315584114416420939468247089948404552206038002178656750200807276963684652537908467521896378103881338746348494629530212513296132300904592118924999186153984222403395997505752618704821862452669674635514704444672654904256663389214770279953523870864568524959022331358018384561392942119248821518050575831644451125912819280106684829812450093229258024118246837058049471604401",10);
	mpz_init_set_str(tab[205], "2162712575958706976287596642637697945919361116874880551388709971962443952961618068637541872952350287193548049797914062291172372806207970331937199719906305290747241830706197606365408156475220979478758160956344669703932895355643631873017522092683315969519212270854788481942241939545506156611042092923995817529796663282244059668704678317336332005279424939421158717967481827554962071217244928572121731919307759095971407894482244540732817536551178984952420274918528177843590135003367948702798064352726290201446724528794091363962470335598244229188678040909280678695603102531826100982555337967431914385702350274452464976237297839248589653910382316026350757133657971911180939592244010466364078007696679026549815699432915154293489240534190091489301535291317974325545650059397623530645230651190856453006209853995287827101793854712404476226016753313477424910814495767762362000802378939001059336547936371348085243838549501937338962772856999676201185327521593230633021689879203256674649232367199855863674924979378661778222717100629767906837615653914263734621920751565990659968788342629034257338624815305923745960358053396242074279798183438758435268425109725981161649165990181810208394964386772019322261496831",10);
	mpz_init_set_str(tab[206], "4059476737704394301198760287456839067862559497799949805274863961293775308459278462941464907699423160880696919458265606481574129002835842223984210147109515035300507287798872073200963337792236130854559981934298927588124622604908812494828713162368451552995458763623025248007595659146901347327918916880539713182379351729316576037081403152494414367218224538263845482217384683276019293769724239477602044368259807676660948924909827919844198113851284916070784228327353354699453408857829861950263652114514080679745707990242273581080367752897864458036288944537373710127013712176907925046142154096641342779659399935109151196695995248148744849219255901775679263390091181615186496821636669297653222988924856919904410442787072760611212982812435693769941860906441394963727217860911084538960537347594902251698431025248695712587821875782680327765307548562884540029811895768259282734684743762533310912453087063620883903167950225214169886040003045795932155289941923256571031431815024210324341598573235924347361982153868532200886724209766780131395895740177817543640681874749156482400811529435936691849066068636873110166890174472296608102915847800360960863470797606308027318272125422469741511661691179962022527960409",10);
	mpz_init_set_str(tab[207], "1749634473950593943816665683893897638248763143551778366073466367317617157945949017527771375218451382339580372286512476393558449600222247998537194573404200980214518641041313863549615198588453772398315352213682837790481712342715698185271175372980802619341042727121523881891273729092314480698333053175512616381605500595335444271982084758725092592271054775991717402835692798491964315614751147214846481122719977108640868986636135833452849387069903798826508002409089295875464419217724670500563634061355568772970400143794419913445638501498979581413640535095608069064742909948247315694887268415652418738033201372032044165775973951952109030013499293665317762521129299276145380130125404467288539108226613332478800900841228359823432795592159784014844942050676241229366430898052677436291991596813402870482023771882187852125351228462335221266847553430603236752848927076119750858649124561651857003267280524420600962265386547067307220883241312738046758929964968923582114547112275434649791228985064683393713014308317337378582178134409482236631631064016639361309133888016886443914749769186888714186947475582492310481929665197559838092356730401955574132155913768318759774175286057084458591526188898563631709550936279",10);
	mpz_init_set_str(tab[208], "51300788485731417199502353243162059765817473372814826307254469700760737243468080012908262189485157055510605494577247622646023418656499403339749815243293859890710169900275775389063411525315374238862750857007539093789854202715577963248291333684722714969557177328725354919501993419680327291957668895345652787326052124448534910113212892783655301666358376114061417829187463267814322096393916390045546097142073931045052994249799146213084023339317825152085314800695927015189794504098062000066379988076189445825963644007640044626099826236634238901769076142299480379163862504039611216723761720427708662562041441227392337868682902744180044487991281169637007571934295804164565403977975033357176910896529581238645058756034701659777615579996319563743483687590039928568296127208482304210822315155009727766489890067185392528260521985194028203651290244990736453281560791197357116528927990465083159545441302516016978115230658220779217740033752288802001584485995791122632183437422407956020356370932441397218215285534405831424175810406258123886702114974620201828698567092023899636139295431974499648702812591501610690809997252793754216018483388377184167325362431863857660643779206588126110405886774571640654404107511",10);
	mpz_init_set_str(tab[209], "22110639837350240812985514247802847759067331023683190138426676441027877751934742485563461003668102690925070968162793725360436093440951242839432170369859653612896083227018859192686330367410926296949845619370249349423427161370414102160013564818115490151879143428680627970305359163882221062833755293893976351337528465637318546258794756789755435018200460105160471084379796668427972823545777964109630367868233864280417840521663432017839214059245982640548770679099944543546801431266264722028609774860837651150990330567292859233849025107989356966662471817331076043419624739241072434407941301504342433564239861169006097621402331082741599174324242184113550263503681491594927689114507239376943248596404249513856020323850956415364152314978413731973441469351307209212935630826855873114864417831809192667357142618956904179680284975618626155773706095591007411364352701006060917223967963890450841764085201384403317567664413693155842845954547236473662682913464185973854471061529057829044773595871882242201050788065328913343819774285097251395168611554061306988169082416662300743176036331181009348590912226937194207739108815954108067103966340390566376117231208133322651737468838039482353584937199840377122048170337241",10);
	mpz_init_set_str(tab[210], "41502337884956716514397403773718106350546335958607194482568865987915436429965676730442784111293492057908079845112993326720632945693108017301857600531824732651584527449323102289752299923980137759239965443319099126875992049996902572267867688950940676410371756458938812129877112676521384779193754136334633104946776168678864742281589230261977139048083926276275687023812657783661786575982678359546846792587937810215447872348087509286384974881508120548037019673763004955288543753815332158053701410353637261673204588002180796102514759425437099271531182599120279626743564765768045474329523231826016308012691525952960401335764468320041655990784946466236339125694845305569133411818181801985956120915292431222063852533632073642760091004217022527068478303260342302211751566911662184106555252960402869763090321064352982555362762286021968816753893808197505790704782680078661907271902744286252276072262013735457735295221602500610387151687305601640819281849170595018209436400874728036420468304084345090349536165997334317622158230618662822224342011014467743279417140777447334805636690004467370215800575386524803048865287777510147160758953061197141991366218207377860847460817378129794023318362400628457289412922976399",10);
	mpz_init_set_str(tab[211], "17887507628416344817705281026472503837085470798159700821987181240791553101315206670820839951967495076958382413243700123816592799593729555457100625829216459772832931330658257086883241267235439374232425106070531723683552573548665008647450973937855431532870227033802628027977035563580716839832508032760226868232060528700590703923364958242912146929724172225074821107263255504758230014248534372964690967605401196202858032982025716502431924173929999956203955479391855135729362357894408160121145307862417659781151177428939923120183861312363389786029939700220840519126476414046027599436024512917013028753470047685725932975714485845937953732028311926947862163174478326700296500493636356655947088114491037856709520441995423740029599222817536709166514148705207532253264925338926401349925314025933636867891928378736135481361350545275468560020928231333124995793761335113903282034190082787374730987144927919982283912240510677763076862377228714307193110476992526452848267088777007783697221839060352733940650087544851090895150197396643676378691406747235597353428787675079801301229413391925436563010047991592190114060939032106873426287108769375968198278840047379858025255612289973941224050214194670865091736969802827969",10);
	mpz_init_set_str(tab[212], "134459366621102044479895667850327758646207597710147659751313965085693892315129837713832555198640596642493297001286966018955227380298684936153484265752673206773551355308622807294735201607851595880059269996216759964823207865317529841673771585587658235935209361778589155244014724752982137832221050174700955955581582618179609999406730991985960545667525303794954976130300341224941338214648454858309376320609375773269083897928723562224493225172352019723615610092624024706812451395241020502173981948747692537509850710944024556965007644566218340161536748568966938073788483623087820999032979469241024404575110617456995317553817888092495896603025147945618596846039789302715325923826272562429160683459804032426488698999566953050277130435170353576571670745173494652777504149413432119336565288021280496475970001866092913816570828123193547921770031732120720244050970833728273002422320263008982961168601653894480499640019555196662329696628464748950046152937794968532418952789484131252729354048213928902108942263385677684162764799074802542707046243348479548993018944348194640946321093327205163579250071802325721620613002799572429800184444960936599702559774933915170928547345300467478535373829236152270155193165786331",10);
	mpz_init_set_str(tab[213], "57951987013694981170835032843491263976515474613073641352816318951934067587820960054661831290614097152914611007554682354169703000908733207482151718539402152119400634138016429944030871892984037824305545368369423544838802589951855361761395553388280699688075234926571925910170346368535301405687272625296112016855662108435411909744301057545948995182703405935625594712159447067949716770513484043931341194182640958278975160007279855318756580049283720500878327949920954648636166551348879836436986219910255483666745656416874584051918294808040104609622338633224750309802836441550850850583214151242881518371872676123964981865695509767865731435903838764561615240643149189470305473169123474406968254571175537975816629268813356764669443217558422391502390091169776195347104288397189243434059639137171893981143070804286045854942026921096419154282883676544030425185968429336885664044020033356871656263667312828521095344848428289761464099246868306797469891916189631437472568652267660569926351594780203356808954115519227081874151628401239895906736930883194685615991165014071890247864391224025425502656780946802386018484204206615717243879495778163674471803262996517438670203905824501483248746120400781628436888254453908661",10);
	mpz_init_set_str(tab[214], "108777627596471553984235595290915156744781946547509456738812997754326358882940038710490537155700242683777077274041155509334778950661636113348168770993912624279803046444675851101440778100751941066967949426939358811541975163041881641914081212740415512871584373678878626592407912325162549506266829591333073368065500338107304489520045372516642081445027970770118575689412976050977542615650599980372285443372985000574688873424337361839615019164432783956405028564932835987811273178749985586258751396536883262845469225153715866584691184454070637190683229592294252901694883251078047188217680390615988743301264489522709211901038671466829180351847344688005444848446189545896698672375454503005190992918981462233029357490649665017674198522052816043446481632845357174097000856875466584543281318009215921649059731509669167277605799951663580268711955671285662677437235404486172858959657092774267215585398738000634724208775820154099824724572427981900587337726676129542726932806692662183458047425005068481806134291079013246487676722451515257050000410868919955135352325977689464525573764501708977335613308088081508791075919264854095708349215973397709159370857921537373281194802348078190135117427852047186555551271121141779",10);
	mpz_init_set_str(tab[215], "46883157494079239767205541570384432557001018961976575854428402032114660678547156684221421514106804596707920305111738024523289727735165164853060740298376341064595113017655291824720975361424086599863186203010863647774591295271050987664969002691119086047652865055596688061327810212145058837201003553864554621636230645724248234983139555554672737102807055401921106122136992677971320867345408591540455026093756535247690904445889402952874073259870529885210567311486052310746658740041243787677521851907396686286397236041251538498001900499704444629184471954278823000630494681214638338121820248355491148362844994984287670329347667402203376731646205560530346729680307694281477127793820890795237317948081010222435653078470005622617579563004763714725433583756348942035807369313326097938154248061972062230744744280667411096648099779167003095814852894324120613975448459333540502211612206985709169917306856078273566133982378486417024456290716460199153142560197411832915308039684537401070418440177184515658443879455054709236188667376603075788550177084504500663336852496384159210522292500236569231649335785963130288953721203152115250298512084534412647688839764182607884194959812021699948235611404232337405442597853212106749",10);
	mpz_init_set_str(tab[216], "401633873054791265254903923540715765906584999035767275159495243287255811879111598421058784681479294587592530417045271637695717344661733828746901303539747629084369920149259045520977448831694064916056476459512023565280768553060259874270872851417694135496663141306590803664781106482677282368736589781661115671975662082307579811276343737603237356745919726596986840184708649923718327692667971417666580394525296806151719891981677515702234818723519253115675929574648412601920901172583727398519688926648487171371469368935813909377735539606609456361950097118062631888473879544126116215730330509228531119198222443369254613173918445584185568296483740277088132280673601850804382547743566536153338035408930091517352165000995679294398952375791185864547733790142422600761190379915207959666527905348571158683849349335994438103751626622084046806385951328032475692741339434284108865304977237351136056081259957397896921664140823210480495686724246669030870404940861048699087364131580031887683370028030083698821407470448863254219872419670594851908990858136301560116881081763455110251334543936928357749694319778866110098351468492122301757208706447604974845990262479062141625180147408378439318367687558121374683329757703619",10);
	mpz_init_set_str(tab[217], "173104199286615035324863591046048495105738134584415695593742449856807254919897098919476336197717575967252380609746512075846854175549207280189914461825631228135363435584330648619541280446460141978820341354049682156636011246368972005810746198961026172399061813903140636379520656894033908700925470195895940854621510357474566898660104150906995300757491402163301328119609428117122599235539895681014296150040402923451391273444103009267663206869836798092856325646673465831427908405383586508761985927385497970861103298011335794941804017570448675692000491857884994343932242083518356088979772449477496912374433873092148738277958850046783979935784492059424985012970322397696688878077477177082088693261248869443978783115429137775885948473966001107620073263551384140928073053743454630616273527205234169392739069563813602822716951074118224173552345022381997023571517296176450920946445189298339640171023041638493573237244694803717093640978150314352305144529511111989306653940710993743591532482080966074192026619763460062568765012878026381172775059856745972410375746240049152518325188436816122190118251824691293452389482920104712057356952478917744158621803128475783040452643533011107346216473337550312488515125570259789",10);
	mpz_init_set_str(tab[218], "324921803301326133591217274144439054618427264219935725604031651819389951810201283122636556807316749321362357107389624754895835331831342667456243154563655831929255265400750567826470756104840498517089689455745227064312141759425750238285136136796914555616800481317031960164807915144485921436307901133363842578628310624586832067322562083721019021607449058816962353709429297788288127103368388876892263539170965116176741392613177110203107968347327075770581827025890565794954009048620235465402428341658626121639518719469073452686588051541747050196817628568512669197775368551198028018525837381965881675431361956685726982057700022477606124751855345884164299015064943897300745481124545327748050470645824444037537901485805504549168752472015069364419116636225219884015803017351403239370221075426994067375234123612819500425935065937265993866366234624378272835427743602335844072031726585017069069369739305534898609626289925977278721010559915555245974157597156588397561677582448245797135846352676337712346518643593130372663876787513511235194373604232267962134556795146635184193329646044975041419502704701102683069566338010126942121581843516112424650406122345561272574770739253378157408559459234520192118813773982227771",10);
	mpz_init_set_str(tab[219], "140041297222871563577814645156253232540542150878792297735337641934157069230196753025856355983953518957507175913284928269360105028019308689673640799616935663561509019387723494733208895881186254860865656155426192864718533098312498352700893674959470173470841007447640774831032211427273432139048705388479816151388801879196924621016024258083759198312810544350110774448764027346752182781551775605940565585382685965072175540216279334497539534357697969657120767448158833857625177899955321485588446615254867858426632568091170658107919450214492978634828397913028960424241183845566350075984635911627295002110917003331548329266868709687848239768049654076074812875492990819736621302364679036259409752848350335380178835540382172460691732315438494896064639270213069770010811100478454796168565283509034443038725907277125204683578013418961643356403847123107035592069357492606748795045674158142356768898357640685541300748930958096207128755551323604311014861924374489599349083038035193938565549778003501554021349535388639190618130895418323342368775023424107491679993978708199764387325077445384242851805665726175256402983091682364712054401774555444455024325038730936908479726188618205985843089126930078202803208736586340169301",10);
	mpz_init_set_str(tab[220], "1052682381276607906233103183600216022441159282472746028193037032655897482935151499461595074650157231114080022223075656962400475160358404365145628316577678535830133560711207958310481893387870144144984024800381013764600894377570941130463957743565776329136754093364574496405391280091097157088458601817733784176248210317728166685355296936258085112031055603410702508124121371450065736882482753085704107214050802928923657836883976768655557459874343962416186611415153489429634681973341949511520104676745684876164621215980768256479044849308923385124671204546442158179690038285154550601429196264687980063418541024070816341128840245876150374505083883266247994707645510450958286657635887891257898990806805769866980024467609675430619654176948698150979610263963289636595079985757760062285969639918605006910369144609641422269933013376482286679537578430773118790675050657258649335964345339097327602988982348339887831681713097634669379194904250519529911331349996808640307981388871263577618112843466849374610908980046470589310285611956629106853465039175246389066345315302015843968747839658689225661948812140408074567779198917852552905644019599172639071340477957621873199597166357359889453441709089836123045007294941185399",10);
	mpz_init_set_str(tab[221], "453706106330218007586467472131693105672139650745753538151198961074691815145050296267947477174217766610168489578145608150794604794114472281377765804444979448942787564666530630031817696050172032126488114688964216932542985476733075627229965787476849597857941014240131607950723641719262874705125657383443260979962978646940839841388132979527234683285384965070012781001496311094978332596350066579938470209255896062366096527696993987290545265205842247801376429519931153944172547930510380239465165115677390181626951744087711118542468330052145978988733289159516570175446406500901611309215983590080519407333391181374521843026530145972620811411691153687752885718995215004363021549441067681132154465037733286812668390545539770110597070950264888903072212023768177833372479473861594586845252914804918757978369101326755452998341128765263865558880696303663214198780946833278477863800632841150948196888251392134491655454818345080542502433003731973917391783811848624523972739978603514601953406635534212080457301770400028823992733098753307145053843431884531193687594830895168828750530318892895056260299938032515880138712834733594450302332572447243407439747745999735027349026378700022112354433376617719369032398144119650906969",10);
	mpz_init_set_str(tab[222], "851620046452775796142580475532574762154897859520451536808166959418621063694537563064430415391977199971290737978468206482581984404729949131402813308111341935486578050615367238273179851750786946613292076063508240135562123551454891374545341814544713050271634061531940767591961545593697600084563008870546631398584802147042086848452435221432790855633123983159258329072414189503103181137928547246334622736167099569499239190039137205842345985038344265594694968634859172948574457716433637154819764683487259064817178563728441519491547283090919018565859004478071705967369240972690031436556219778132575871305599688473290419973231758913805652974612861562394627718485217954825253906027433304027640283562705867822386839794296227423371300229151496804142504703546301316005419708478027890389349438694151450590488637989199910616375807821574169923745900950495453101656115981722247312795155379329738030818086719806969255830505895986447527768677538670299698267062147418190009156943596852234293053290364681144060225364857594706752021060072912947444453216692774328754673360079330817770717002283879583560516589021590132325333371924542715300666011855730665008714446667716095418474107583104150567834342653677423543410901607418987791",10);
	mpz_init_set_str(tab[223], "367048240021146368137452184954539722488760977453314612364319959509425678452345689680769509033942173187626308068719796993992835278438608075634612535795988374194715139815223279695740516104589173990328884783372051498427275250677058182429042322068771324667074280520266470832135426150883665636446656823205598132790049725375139431682999580437532858777876436741640339830210515675837471070447203863170222399288019914454172090906868135718051119551526378471313531481624303540835591275782897613727318578583008656936203960966958294900856879012186097001885230930048905271936142859229403549155730724375140200532713465731988171008462888091850236432058143333392084546667128938529684433497823754035912962215526229031448727951341674019473030398764295122585419527228455867198335894354030020757809608077179275204500602973345161475657973171098467237134483309663540286813785988122288591814711968491117091282595376236803749262948041170158884468300019166899169953103785537239893946642690243312980305968147177573089957132253623318610121076891425480348559336394585735693264218194191582459179027984352100514582649868305347032218683299477910294587051109819916618755926513785637125362340368317888894736601683734969547210098592797583737921",10);
	mpz_init_set_str(tab[224], "36875169807185699238882817624947522125587862746605044972223679067688490606811875699883178472685641878636063875606585915743193759769370395619902130682674018896695228050099193106067800726837680325008961939431929134282479111210458922250854370019208026522414631583118320828849255960467555588905480008014583650645994562032913446042716106182360095449597327303024336333143867262424476290671786833808565593306199809598141730579265466392296385955317700925153010044247818876995986380601945736422133525503764608187208949394612992538468786891335183265717339754733974440313886160354930948466905570072619722130043775564542927028116185970035590934509621118466888716776246840300558370332037344887765992292103957377974794938274248117937448843153887558009549035827213571621139552677829931319774486885634429753116738499674836692132696679036158760466372605258663854889508410708156926569303797006297676281677172229431599656361928586453567801048224944344371414850443581753642145691746235096441015225021752293356380432120661453377398929051835945109952995348570172053343773137791178877021345838350341640099810262810931287133904238739509940848817457398817575143748947080221035632462844194365331107705713579477756820013966615715212289",10);
	mpz_init_set_str(tab[225], "15893198186897036371958494396352382036128368843786774383028405678173739451535918426649649921727511649692143530386438529685316510460598640512177818324232502144475643289592752228715222113267040220078862595895161456875748496931707795490118233478278659431160706212323996277234029318961516458818261883454285553428423656236185695244410641764597201138776448067603488959585006790104949281279540125371491770714972117936799085879663416015079742346741929098740947329070809935985270130039438612397939549492122546128687057189078199784080047150165463987524173434290342983775284935112975238789236300701299100238048867268318001549118076153085339692773646702059229036930562388169540657613108095646627142677896805629907136618396200938831040451399325537502115634441529049368711147204144700398822803847708439223593314293359854614309192268664584425761006592866484121457378125015215635351369936509714298477402861230885019451891991220761487722251784951012424079800541183735819764793142627326566077561984375238436599966244005086405658938421341292342389740995233744154991166222387998095996200056328997246883018223271511384754712726896728784505840324138890374886955796191575266357591485847771457707421162552754913189426019611373256496559",10);
	mpz_init_set_str(tab[226], "29832012374013230684256199458582545399600580962003481382528956365759988900910807441205491384402684279816575675365728005836243751653420650056500823722283281287426439492530247222808850788011683382932250209000430669634525600969261268100941185345539293456633436950742721550539048072018252471424533326483798173372609600684626977848557329901529317218724237788146688093513388615301401319153475548551129564984715645964896660038625762311367776237852020048448785125796485471489752981906974100765506022132545568023452040060241910963621248595090163261965327861579785322213933903727139137309726606188749355203205414431715227965745994449758793066018283484839712971871983693803151721598618212014202687764312101518781609105063866727411396114111495034429725169984215779441501898116364414437697559890478253670271441446236942883935351613340252437217295437654259058605612304262898953594566771778094820111876832333610164121996800226440936351048013979974596474614008857638696495864622704193020781317042597605325311769585615115782315733602935279593951973236993269191155112468473063711510268783225426386840746502614043411291328529140263542146693323035643418291292898187898817826662440953241552866133922285797505267391298992113606741801",10);
	mpz_init_set_str(tab[227], "12857597333199702424914421966649077067227850394623500475869980193642555216292558007159566786677556924600944116082628770515421056962624300174351855024304094234880795421280536553030614689633035538043799840079185618612480534017751606551505650883927435479809011325770112988282329719039866815183973863714517012723594737895074227452728209187559135721270146486691222568304270493194903968555147961425536842508412443410870460476647703556199511558514220640881426389218285238212083535201905837429933095539127139818107829265964263625320758144483860365907056308340887473874205512506396968180492167267350972092581533620069263253236523607846039811453880181965916290876824972029158392009004449378121358426418515754594873524282526559514311725182054359839211548263197000939287318088153062622647648312796127331886991263328122382976136545349648800440654333628985654259018903137309448999258278636358867468218914735785980736580620897596043567301694025369051080558637817642278189717652385507191956747645359567895209372691400114902178081182865105504993300465144099021387853473911890459660925845570158772728361742626652710266562596059453586665224822228362313283547239118984390483291512050847109285303720505178724770245649865600964505716231",10);
	mpz_init_set_str(tab[228], "96649820064633717705111864994987455491165788258851822872198262836411533880453926209393810776909067363905123417964861685162910844355519806919763484519288603528238192719309985131003705705041560131848489243251086260954377750482612835219489303820344237515248749379353118892413899872385463198521263101006223748343151747088266142077958914303965810173394594861226785529170076094814552357850753291412250420055549700956729475848254787414208827588887694124826039325973533276606480303557699775162411970345367038058674656363280653443326690442189515339445147497157747008062695626290274015931759499160336291702844735754667011740692523427463283839349716951501715326670542968427763488640269880950834665797604472287671937533216804317114053417906339289543028022903126771219006767568592249989128930127247840382918971607647746970079797995753772111182362598382957963665401544466079304538145251953506209534275868413340222699324614825094801206547397579126597478323012627776296063858066882187771900904782012760887073112588253669302162593044862012133186800808602420951814029394150679836672947442316245438701602698827450903577963009736255554964750555842300864451765990297259334392685114633431532833296675291811200625256606499789571409469",10);
	mpz_init_set_str(tab[229], "41656072447857132330903213812839593316692454739565135657917451282493371102475642196248732444847808033843108193142855386305214573917229036782418061827813388120670661062022603591462597158872912416826698863841218178471336810458006131979599889946568366369072210982501194242630390844998134638562664396533682435535898402995042707235600292065009264184733070385188744563072302796865072066233674668598679931043941921112350404090597813375524004690810596167800022949494592842217393010833368603094999559218853193403288776892573961634073803580583681111300858571274988960475021814931108100866588344138104941723926081110261482060238477597236675334759728006097239305795004019392366063603956318689809740958767527555986605076816442660676157023117632233793045077871247638395391916822063259745314568884843819205038076762896178944104392936169875779919598279903054882339788065664880180255940603591961176309272899286149635983408908989615859320021928356603563513157218442571583603522826826222929689289961047499942328511525537331469232077602335527229403511148507643430231846668878943009606040347638301784080390763194631339442102057196326144189807489568031672578711141818118773123247284407008990651150867050770627469485597401409305277481139",10);
	mpz_init_set_str(tab[230], "78189704432288677623435498780944851492353122701411124703608394634656930909287226303399592918519435497399244845133573103296794873083615523798088658976104480254344697909921777970981997915378622146665427797790128785112091600140433783692566846790658488149836238247896673183962844996759839727603701848714035012409609763394407308941068761671908340430276227242732469493098591560704972857501259412752510589824939708073994145961238123018094941519410144546984265814712588420774642565578179118106391284009401933789467796997894048635651292567731317909611124325200617329522720761668831678888793434820712059987601391225525612498220251452817796626033921013764887699276469261458060662309978333689225244630262018080726597464372394692545269215086228485240309670528629557916176474962991130241205304472943502869781448030587027298794556578564801637946531342091812992605309849473058157371359508830386523513229177546392240163753613393501694176096844641513417359963317215871023515661176107689907467831968648323557642148083897218465449537773293367815748121854159358550017549779867899987868414480833842559909596583351407780994572074876630743966483199676421399341478686150482801523682257738446110062137010311075261305832594658329763270260421",10);
	mpz_init_set_str(tab[231], "33699762610316420055700699974587230993204195884308194747255218087537137221902794536765224547881876699379074528252570007520918590299038290756976212018701030989622564799176286305493241101528186145212799380847545506383311479660526960771496310966773808392579418684843466142287986193603490922597195496795749090348541808022989550153600636280592494725449053941617694351525492962663843301583042806896332064214549014179891476909293631020798919794865772299750218566141125609353870945764195199903854643408052233463260620506092334961965707096692198019042394584161466069024292648279266453601069970407726897854656199618201538986732928376164470345820619956932666598388158251688424145455600661820056080435642929792793163507144502112487011031702164477138573467997839339461872060709049177133959486227838649736875804101183008765780453885361429505954955008441571399812888545122888065827055948305896591634201775522495055510577807372599230189897740040492282882144189720040411135249966902414350118635578487427453343765824159701158608750780289441528587440519142683535057563955123064894771286641239386143321036127424456753608660564271827850649554259060537623116177313730858087456707053085270273436781051444073437622813848297740127969482241451",10);
	mpz_init_set_str(tab[232], "288695704420456839341213579185714150721227377443170897087539183420933192960730174854385404262655890267841744082123961134353463945234400827308213781114654893942226940404226582827404811890412199264495163023812573192297528961666682902301938862880379639643984150664233333769060824914500492705541002982746175400907491426155679369068424395301697187274897475455377529152183336797521224879669419121887260029994238309343851608705069336385288405644182280543022915636416173988001577373732633170448883371168973117497658864810425118583672132572263149787301052939812285893217414749418754395547403708098539804556112718894806575703121619959408641426275823736477271763641236512713071481329520373126319953654881882312164669571749088515332286993051785691656759401491255052221901557914730532302514457827631950537150945713954296462706882300174086935691231126570079319929961347434160578111079426762304507609250581384219993709657538903344982314406553089272083806864122801549264358620681274570036708196695298704687102403072658518491656215546823614265822000583955877005628399895767139428200116568444824700341414547546781046971336285091623326905391873975342795800410506691050487966551607197686177242228031613731358143889344634434397010581",10);
	mpz_init_set_str(tab[233], "124427848605216897756063052629042798960848999678006656644729388054422206166074705362240109237204688705439791699395427248906342960396026756569840139660416259289099811314221657198611473924767657882997415263263219045880234982478340330892135649901443624686557168936284566854465215538149712356088172285563601597791128804673097808068490914375031487715480811921267715064591018159731647923137519641533409072927516711327200043351884883982059302832642562914042876639295370988828679848078764896463468732973827413641490970733293226109562689138645417558326753817059095219976705756999483144480930998190470655763684581843661634128045418202505124454724880030421704130129372936979333808453023280817443900025254091276542972585423857150108215694005319633104063302042730927507639571461248859422383731323709370681512057602714301775426666271375031469282920615551704186889813340744123209165875232934553242779587000576598817288862399267341687377509224381476268120758436927467732938565513629339685821232775673741720141135724315821469903828900680977748569282251684982989425840355075637093554250240999719445847149669992662631244645938874489653896223897683372744989976928383842760313583742702202742391400281625518215360016307537441225111560411",10);
	mpz_init_set_str(tab[234], "233554824876149583027041785561242747933472948351525255743819199387534953105230711457197792048488615226683970962438284557691952331694630269292344948921755809199261594787019305507370492819343469204976586886264371712568700929988346467962268540070227128471983177887364767019170207355830898598782671413041655899334160563759944609576355335799073024505392057643400421084116319469194670927652560069606793364265338792259175951442401093135698320166143464959305538749860684756293276095349700234893146647275699252055606021631633920934190755250960888177926551828308139287612888532279772305997849599851718701885895189585898519743825390547161590913857141402810112856785760338784874828395581981859192842506799442790541217683545012608903820177378894624550318355806425337247518360353017000632734196382554247984555115082589025838329867780840836330974205981395194169823338730074235907691863256250704346655883720339833974911112948972806090692354901449221115799753075346453354866124131151127159696931126496652091865844085780741459749878377380303941049998472420304497553375515675615797413894303871863182576204368965345866999811054639123271466462026046052321802532099913059844764940250222928117388962477575508668738406479809257427181560029",10);
	mpz_init_set_str(tab[235], "100662129521620470284655009576895624359326840739507385225586074936027564788354436638052248372898593162700791484810900644365231454960385646065000672985276753764881747353205320673676682405137035227344908947979944208117110100824977327691737740770267892371424749669454214585262359370363117296075331379020953692613023202980536126727409149729400473561823976844305581487254133691222903169818253390000527939998361019463704835071674871141485975991607833397460687201189955129962401997095720801238946204975826377635966195323234219922636215513164142804686343838000808032961154957412581863885073177536090760512820826711522262009588743325826645683872427944611158641274662706016281051038495834181312115120430559842723264821607900434437546496450303583181187211352569320353680413312150327272708438640880880881343254600595870136320173013542400458649882777981328687193858992661995676215193063444053573408685883466468443186689681007279425088404962524614300909693575474321395947299500526135805829377315520057051594178800971499569152197580650910998592549341613151238445504847256190408685388444968773031690344083024064068676918564549462130002045133225848550696891335062528793093689247846082018594642827835044236226253192797789951115252372499",10);
	mpz_init_set_str(tab[236], "756671441286017375913320791045756789040336956278550921266440199746265898750073788293344144572421088392013211239246902133140429000459364568374828320301510477022576810799477873590628011964770374272241822285412754337011823408528375886933381759609475035506882458890955567808708422100905791381222968817777725725778535027954035626328340340085748327847506283168544503907872525746303130409613547518466508538614898608790235066415986730665840911193401757303263061883046792022552134296553231539746523315833878540961363884668124235807804659471901715592516059755248001326122844058226555270729745118926272827741571436223288034917881765913610049178268934013306929292503680899820960352564672897964084598529445413540183598947554360998685924208788730297832366391308579491873603983294508725164890393966223342357872628716274211028754738508756281858446716782740177897536428691624934875229139177544000114443845773808040603513012409465667198646059575646982131657790865862860621883944805620648066212183538377904984895398453437976966630940948224692990719463530548353631752036126805672441312505525893885539594847529120113124111872403225144739819032101689373467792875938037243328960331762465135470551879670859589889695133972286852554564732801",10);
	mpz_init_set_str(tab[237], "326125391194273489018641260940721176076385228156055447065835726090640602361281802754431326310713489096957694044115414819383524899197986128969551006049951015596730605454574963517560673156816031311336225405012897119252095889075730007268287538391683740303466339782001849725553329925490396085307099560462199787810548597048189354947514686576957529302275208045642681184293058596656649206543438980459065180143021300388591313625290280916977432724356157397706379671593167361719969881814442793630751549124401651154347834291961545633163808232389639420374421754511888571558945789095645321684520146257223588756617289012237143049607041108765931195833910559735286525069086467822833911955374019022520461966190973235819131146395929590433633333987942758365749914653997760997523316799933260546067759799442260556243102976714184953393292297273957480990534933361016673838200766090346931223758985521464049325297528511265500114108348479702562616451677103849298744507863186892928031980211222499316537451105040877048489916733431768072617935548684842679000088781666340415285127570653244822205689881660264667565379285050768756492217005790037382862002835828119964618729529294051874781902989622473387807860138140483242458602742055633451017399837231",10);
	mpz_init_set_str(tab[238], "612147196000388057113876519956017242333632597629347695304550121594729112088809694729315412959088660509138687892550743825710607061371625935815236111123921975911264639936777599734818061679499232786243634228898918258642565137499456092529105843524065303725067909242783054357245113479632785227409381773582180112154834837614814821699627335129370397228632583083352503661468873328759232501377359942439405407739452974511300168730533265108665297155462021658339817063384854746244676645911564315654937362509607739637743382696512506768513969512768487914345492341995633072833380843105283214020363801211354717642931291904640020248566348624110529785219567616765305797635477847955156925224820374452944440210321339554008531548571478047936912684910082810946384410568640808925745622485257558658396328718674683967518956631465836722262583453583832023483393877236803919106970811524572314060373594633096092585071231010704848242027039257724763704662196698408544511152810483054243104111347747104285565656482547725132780377348831323366004431227113776629492045996213618088087397226585789005021816970448153401532231651058171517406504774209142094513596970266703135444436633872129853128908395834294595676470653725408220763363383580063716642868836009",10);
	mpz_init_set_str(tab[239], "263835441476167252616080780101043431445795649578248856676261102407328247310276978428334942985367212679438774481689370588881271643451170778336366763894410371617755059812751145485706584583864169330871006352655433769474945574262265575880044618558872145905504268883639496427972643909721730433013443544413919628338733815011985188152539381440758641205540643308924929078093084404695229208093642135191383730735704232014370372722859837261834743074004131334744461154318872395631455634387884220047278003241640935783867397942196890417229520860003218291082907199400117854391187143378377065242776798322093883304103386810899848727132096256991638337429633642825846798780890952468672634771897581389219053730648497347777677097434307038660809367196245691517891680955084188646996363291146007781768817677748788790000670308161775627295173468494631602121342761089062489135104419767090667360021019286864415904165700565613789592313653920079373156709406777014082684306861318196378777871990879001947078797943978069532228342637346300370747909858886037727311071824368069395965668204658475061164403114263154116060391841606071924002203557684140242735360294184949051376552189198887966698559518604580970736558851755650943149009618323007461873076468319879",10);
	mpz_init_set_str(tab[240], "7735882196952313598003196399921978301341821982921419172810461863663045860633349295687524501945415207879911328701075443749825681768654468209642784300091998178618391404057111954145876826586501802133449091141425323002152093615512334658571148714485740339521710173462296676148314004069479214426802016782943319310884588232586402361464444300671617462503347353105190636046037797076867263290375816602679431135166957955872431975304206128538021421363340374423986178693503310255438995889260927117969591456420507224584428633115982202070463731853742450812928314655317209022594755950695508596524137202568457477668496437998467301881334578917162988064873209947291777452500551405810024193802344425561557173772899957476990166265538002574622851946335996987765711718946647154363819326169796199729058784934360356813009193992615959164999326599703487304539578610093426445786863078254684753142656248080089039928921367239590234965905420072566999156161444249303454180029602210448432541698526115643399740076745009206432606762690016983698445059564683735555687830606125021163394605317426380109743686718747602188818893196605440570351291725893296425988040897495093272144386571125175345125663357295509528134453733449991035108670275012641049481340959911",10);
	mpz_init_set_str(tab[241], "3334165226886447160739377648366372647878325274639131663481309063238772765932973546441323060338473954596241782670163516256174868842290075798356040033339651214984526695148615252236872912258782276719516558281954314213927552348285816237844165095943354086333857084762249867419923335753945541417951669233448570622991257528244739417791175493589467126338942709188337164135842290540129790478151976955754834819256958878981018181356112841399887232607599701376738043016899926720094207228271459587844893917717238613795888740872988329092369868428962996300372103616441717088738339814749764205101903134307005172875121964777339407110855203513297247855960353487282756082027737655904120427528810447417031141896119881672582761660446879109662449188870814701727021750866004923530806129579182162083224336306709313786406962610817478400114709764472203028256558380950266798134137986727769128604484842922518376209365109280263391270305236051276376636305582471449788751592758552703274425472064755842305287973077098967972453514719397319974029820672378690024501454991239884121423074891810769827299528975780216543380942967736944885821406733860010759600845626820385200294230612154950573749160906994364606625949559116946136131836888530448292326457953721641",10);
	mpz_init_set_str(tab[242], "6258328697334421700784585887536880445785533984183428110803663647703404101252379580211207322073840903174848264919170033993608976550841464781601012498774426526502278645882203570904014352708479957925960314733413086308741043734949478738784059310018963934673063530330998011003986029292208684471282831577401145322505631880162399510424735439243338527165208008662099224561244577835185616001914035631567659788350068986300797468021102757987259329882942362909004818563044177996650147674412090038437399488244190344688802764190829601475005159069677642707659006556151622099279157564112666454588026996877882099433813618340760047221999674343984857344482426847359047959072946087300309572786096640279299753582276065598885044508820244082869887224585821563102460780627837547880329834871365125580808557011897528661724437940026310964484455219160121229372519095565581994641572230308039965292408904696792033302497386096828500087417484838706702317334608397686494431643948188252781926234107627555510389722086712448003978871016223739812042053187829142064551454960355142121186235701797941508782642555466810170754484596053801421414195006247676808624325086073530457164808736040266854206661656052067208260773070361042747402914252485226609030404836567999",10);
	mpz_init_set_str(tab[243], "2697339668551135753038156517528395472133565147183057515756379032160167167639775599071030355813825429268359602180162284651245468893412671320870036386971777832922482096375229739059630186017354861866088895650101040199067389849763225336415929562618173455844090381572660142742717978624941943007122900409859893633999927340349994188993060974313878905208204651733364765785896413046965000496824949357205661368778879733095643708717095288692508771179548158413781076800672040716556213647671610806566519179433246038560873991366247558235727223559031064007001031825701349124789316910132559241927439635654367184855973669504867580352681859642257473515471925971211749670360439763626433425870807651960378193793960984273119454183301525199716921393796489093697160596450597983136422158829558369125328488072127834853203232752151340025692800199458012249859555730188765839690517631262765225041028237924317366353376373407733083537676935965482588698771216219402879100038541669136949010206900387476424977970219373065089714893407992431858990124923954360229821677087913066254231267587474912790285318941406195183595182860899188412629518047692748704517084112097691627038032565233355014163071173758440966760393193325609424130656042821132668492104484560807569",10);
	mpz_init_set_str(tab[244], "20275747238212013940366377764195505127816915417237039651936220544660843200720008503997001719598933259853247592525518738068293111915643361177473737650541127226158803870033690431816343162483221223391770067881675771588640637366257829140114980780667125429886402364644679588184731004666105021012648085988094439913828505757608960589398308512060309369221273412488704657076665066138469097084075015315622789005272596802341644207272324262898154145393315121365267774355672176179505608225752889976198299207278149435635787447396989351626685441188658963580685112711586404848220855346772928031489763607931927048969129163993982798230977931341884191718032683271851748703003945234628073411955944739396841352458770788547191225781975104748086494951346648104933930415359162191587570453891035839489863075312958495206897097454646428971463235017822840225198235537054870714407368128105528737986902026217913373653702903534966005845638106010198104788299145377424353405857587393585341691791836949101350718741148669130059862325010534514273624501119036070891457804018653680469257260536974542267638202889837465336894319068302859734890735613566329932514655192334639466290437202919084579574363659471530473240403235372426503019824790808132190690594655926731",10);
	mpz_init_set_str(tab[245], "8738847059669378008297908816368262710089090544829164089984511054748823419510323665222707741147140234996749712378498576107434331235642288667491180927383225834474444467984520576112843903030268347281852899257002257554704114704857124359389556716467531060281039419161856902507619063011091264056451325060868703602860085981529462014030670968697993338134368840782631707200042643505680180843236331601033422061272489221809248653334371757309104436664518817308430410747294707933366917145299495579741466958336882406759024389828102410551101425152312013303275283578693740489583188654459131981572088115018660558105694669681406586037551488408352086630472086490168103690994700396124699640553012182680038622909730209863839418312031270146425279324030405333226524009019798904574242865627036446820130985459885111434172649002952610886700654292681644137060439516470649277909575663213482886072354773299920664044745951423570348519470023690395383163756931657669896317924620166635282269162281725062682159777435076395055800662079540375651932159982304546554218313532039736282249879291436027717352065445519947560201451518438532545737907049447088200913816387896229609971178434458125453796550737232229633966613794445515822801544484838304974187646296704421061",10);
	mpz_init_set_str(tab[246], "16403079515713519277756399611234163648403884572544765078416402420630622149382486879733574391155537007221277302353144659097249127539755479192576253759287771925962472330857255559339421618448925969723941984916275699215210275629302583774353019451559704472778099512997545786841447382774878961999232301564368401890287261157905649116823231586256790279700010190703362067575022038506021499541016687390338836305265530813094390163683310328684606703623191933184501629453738790529220037054634087990744424058688022893429352044944164385465988521921625101536774256183673401522210671975539298777475218758816928982616025493671132083768861146455584311099888440766928064700730191694814111390272359294172044654139145567934677701657617859741201974415639438316891549706025562212994344497197847994147299227928183422622379751840808961037913757129418677742185372549477390407955560815637372749031403739210291919285845648959787498729121227762250266773734008610336301905338788201410541428659596091822992731461589273326218428620933522422047362221405300181351189363451090827499629123774412404694519306137878509457547504126257013525526605111375160915404356050598723328228963697161539424875660200512468152851486217416293040943038255763778942268691076644725379",10);
	mpz_init_set_str(tab[247], "7069727271272526808713008232441924532462074250766793748797469443291798146383851845165170562588036450112370517314205348070914373969634611532000365370253029700089825574599477146075290717551487092951018995498914826361755628796229413606746151383622232627767360890101942234128663821975972832621669121974242781214713809559057334769350812813676676610550704392193149051124834498596095266302178192265236038447569443780443682160547506751663065489261595723202520202294561418718093835970547291924010846769294537867068050731370934850135841052948220418762349704415163236056072799621457437773091819285050096391507506987772257928104379154122356838084051917970545995886014712620464882009207386855788151245933971739779846089414433297548458050973140597914580257923297017313800562478292272485477485967237047055150245673043388662207340829322779450106881895568824755265828846711539707654832535011599635817212199474701668411952251249165529864979479357711054946121201017714807943355752285915575709867259944976803600142735622348163902413117425684378162362615647420146652340152346771746423337820945425637576202974278416772829501966803002694354539277457808049754466683353476623492121409546420873773878990559706422300646449488234188724117805854033876638349",10);
	mpz_init_set_str(tab[248], "60564221719939663158767024614989168121205124304291790703933105930617986042898491635937629325730655662491825792400719649117385262566795831613293358285420253740403386302363129489008069675345722608902772934546218853783848740915846068041953523285708861118115468948036320677565150337859952769747432989393663246884915441272918944087905134429958093113938706427460537489604429913314793804300352268182377266357222113836525269934656629780324169707853591791365387792991437415989831898817023798406583931512316151061271491768665024660009660556682949647414415775436478429437894344337995136802187470158908453592666658613090000506428968418342469033559892360677347325675626816956086679413278554507721431113468033767087356011692897022156722307887864520417217757047633300571514341504583334447678801227251107233489048979768190344302779727949078602107240360938421435644065351039655926932353855766219017093603525384118751949548073533748127036393587947027796742775451755705600778368957760959372176565060836677077160878345100142965375126371331908965665480025815352790688216365030131129879183323321074977536263114836223994225280262922018617719060372186489085227618402465338997776988818424266544095764638279179979813865779583073966776389418375143219",10);
	mpz_init_set_str(tab[249], "26103179561293994821428587609060331460239408575149761793395168656096351984489249895089118239389912590533976916524710168769593048166289003425329437421016129362113859496318508809762478030074006444437095134789420325980838807334729655326081968536140519141907767116603654212030579795617639643761143618428668859407398555188628064901887112939311938132107582470235491658019509292638676129653451827586604601799962731063542391341837007435319717144084898062078482138779309526291617548390137257113237674481808261107408012952294625628464163699930351298035613199213122203087732462409675903961742799638489543498439329862241790218270885388305604153464313607451936697366195158108073358827123056992827936809904722553614650441039638616549547314699669608299820853287529952546322681188475417146949563328945227217633780110280090038394498062746052877508220595564459638762592166298091704507844511835240396367343119440555182090255219693045442752685636405168980396136219706709113935477020794973489408099541220607820256338566738161618076679466044052764201821891126417052786621253327986516977928012351383315318129402494412541511095793319390024236915020412376795733103531462561108041882180740858880505274559098326571299776151000304879680623839319686727389",10);
	mpz_init_set_str(tab[250], "48996455371431187495442522913526237010054945562172058679481882697869950708704879733473542124516100430955887066052182196135964677416537827775154326852904985275986339518611771756607528367354689590602343304047891052711133631400919469045940400338138468644555414378961383428150206623328701790725673288419473566729896591989791425767115253753836097329176413499815574829089983799871668187678984984959543208482992690093748943377137213492282253293653555759214598724530072869535774006142972252910926400593463766208568636840850004949947815390356506264758262362328111049415256524569438065672969663358556938956467326817989810409701035450439057448149952919787973986471582094917474123645342350596746637770795639317573671013459553690924788347081282397017529165451535340162355102277207917568172150192846145751892640624632465988540948799910804589104757451999182941436048868991081644888274269314871184828725252035752070327184391488802234772442412649145487564905340470365831029700486828616132090841134216871755423150581186015658988477234407514353223373340884620407666767039309376084072259308566749656826836859902505211328251732703913061734719841098869669949143287594459249201583954105231634173473592367856603669417415682706839122099039465490864171",10);
	mpz_init_set_str(tab[251], "21117472265086841810535727375729808151333681537296157290856691442781948755451803165127096655666439285741987325468490526534600775966527803771091514873602048653950112332521673627097844726329871213549609964044641043718498595133796291158800312545737679985803383597332356257532739054654670471802765187308793107260585431147600104505626674367903357948875034218420512751337783017744688988889642528517563122856169849430405794595546139015173651169564682532221492050272461406769918596647621041004609278655782883235893082478406352133427508433243654200110811078163415862297975562089427806305049924907538040690237417858553608286581146279139233760152629708428616788169251882909431347291142553107197800879212920545874252206801067640788583777592032713114555070309611731609975049081476612471882196733116688819065728109216592841061148932761556777904150461811647847758937062535156188946846210074709480661180583627409142311016472731673763186922679851781705140474201742727673173800909823133552931152528847471726587377900491172749024033688029638686239273909921271395704376593942341092235143761992269102092366686617979746082476496795386529607664251513612827748080756953211936405882684219354834328767118310546196181518906159246647661624686009626562457701",10);
	mpz_init_set_str(tab[252], "158738825127961857139128371515886609645678630801548783435008670644149741418436946577792526462740048491391075401882286200336666773187571874658441892066086485053597275498493762390690150619081138957934167861445639615767467549940432544337960184531842924990580644112803196495898259035530936209508021865200791370085363371576320552454399357340920162051633349546374068760253210802798074561071223294906010815122279160365532732498735026654229648804284264085168681405430557467309349406799419375623656484493780631931592579925671029633885320319066011025873183747419009963556721076509885253558533359286499056866379312224908891327350326224475611336960477877335327340595817887241903186742203091364737870948399716503535960106647083095072769168974092908013527741221846880797939089083512919587366138016625152058974797375972426892417585666954535016123076986019602582823095285074938184489699455963260043802334840031775248859765500731953840962387594009159855262814459051704379640105038291474514474777024452930619238662142507474712248206219260933399009223147662039664393815092743973691413339490424537516122545623985743088864459569118610797041657235500787892381587832861653513173487693090002612074999116929730727092142208287236866920916665561250376999",10);
	mpz_init_set_str(tab[253], "68416433630151560426964328123347128757287489875467525660488737047628538551346323975028578905440960899789553498211265352345103379243843477977788455480483275058100425739850811590387454916823970890869626348283070674395778514024326426609660839533224300670940257612618177689732149644313833506297957423901541080506791613149394158107846123013936589844253973654487223635669133856005970135821697240104490661317702318117544607706954796487972978634646517820707701685740570268410329594330549750893795944816819452362516401947964213772204573057517450752151342195137593294292946783975760544283727877852481093509409483568935732162087990602748988486229965965131526083796797509401260273485889532378202022378760277813023998805964892813976363511827834043353830456466616005623911747394994068342154805485165440537418137669044115990631979422457404591949046180974448713196754067867298357515060465520165078878806316053695132258558930815472105454789053017947897618273031851284587624885271503625515738628897539213096891863383420721600978976880501462294972975176642339095353734304972652660999149320372975669448817163937855271300582074290121253524954268500839581616464355963372664177773195721791125804324619396713943376713291771799089642915082856898912486569",10);
	mpz_init_set_str(tab[254], "128419709528521142425554852556352267203354012318452965798922014551117140807515489781434153908356699229535380000122769536072363419508745646598679490681463966408360195878281453774068331850836641416968741799909522449155881247901809928369409789286260926317379741087257785965181691559744527393491989688947440218399058967605243326935609080088804411099771379783016621627044847539463642319906619645578962749433923840735715980591476636563271785882665969644901463256993320991053263670100730274879538095955468531232658397159867862973813224138124402919931405651661979060517387350896497170128853487662777737004900863589951293083826413915600769571601026602764279818542016670778699678074442300914072937597255370651360591726277490223913870257700041162582943942648474126565532723068561951946179205655449748015710611077161693355965826804566218828043569281689858489503884085625624991252166859874277375436088885585706176327550290092150657338571563553410322907616897372828843128844975977802882210094612782420870964077673288547042208798831382095119798461526458590088494596410029874716353391647753450850543139409804466158891347791416956134806700703520137404936704556785077692157351543709812113168674285596152158217543046504374625339021582439051554992191",10);
	mpz_init_set_str(tab[255], "55348894806792612385414141451787827164645579309253228259335388271531487688039176095798120334501737367929748780052913670047188633808269373684030860483710969522003244423539306576623451027710592450713527715761004175586184817845680079127215619182378459242790668408608105750993309062249891306595047555936346734129994415037859873909247513518274701184001464686480163921256329289508829839879753067244532945006021175357093587634926430358770139715429032916952530663764121347143956641813414748473080919356806936961275769175903048941713499603531617658490435835866312975082993948236390280325535853182657204649112272207269007319129184397623931685360042465791404601791609185105619561250084631693965436104417064750736415034025598286506878081068717741073248839281492348549744603642550201288803237637498841394771273374256689836421271352768040314886778360408329008976174040904644371229683916605813548812954309687439361997174175029716933312924343891519849173182882767689231388532184646433042232550778109223395385517477187363775191992296325682996633136917903652328141171052722876002748311800181737316584093085625724914482170898100708094101688003217179221527719663974368485319818515338929020775698617091941580191761053043385463521118302031231220201634321",10);




	basic2(a,b);

	int j,i=0;
/*	for(j = 1 ; j < 256 ; j++)
	{
		mpz_mod(tmp,b,tab[j]);
		gmp_printf("N mod tab[%d] = %Zd\n",j,tmp);
	};
*/
/*	for(j = 128 ; j < 256 ; j++)
	{
		mpz_set(a,tab[j]);
		wiener(a,b);
	};
*/	
/*	for(j = 88 ; j < 256 ; j++)
	{

		mpz_set(tmp, tab[j]);
		
		for(i=1; i<1000; i++)
		{
			mpz_mul(tmp,tmp,tab[j]);
			if(mpz_cmp(tmp,b)>0)
				break ;
			wiener(tmp,b);
		}
		fprintf(stdout, " i = %d, j=%d \n",i,j);
	//	mpz_add_ui(tab, tab, );
	}
*/
	wiener(a,b);

	mpz_clear(a);
	mpz_clear(b);
	mpz_clear(tmp);

	return 0;
}
